给出两个正整数m,n(1 ≤ m,n≤ 100000),求m与n之间的全部素数,每行输出10个。
注:素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
Input
1 100
20 50
测试数据有多行,每行是两个正整数。
Output
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 61 67 71
73 79 83 89 97
23 29 31 37 41 43 47
对每个测试输出若干行结果,每个数字后跟一个空格
还是先上超时的代码吧!!!
#include <stdio.h> int main(void) { int m,n; while(scanf("%d %d",&m,&n)!=EOF) { int count=0; for(int i=m;i<=n;i++) { int a=2; while(a<i) { if(i%a==0) { break; } a++; } if(i==a) { printf("%d ",i); count++; if(count%10==0) { printf("\n"); } } } printf("\n"); } }
#include <stdio.h> #include <math.h> int main(void) { int m,n,k,j; while(scanf("%d %d",&m,&n)!=EOF) { int count=0; for(int i=m; i<=n; i++) { if(i==1) { continue; } k=sqrt(i); for (j=2;j<=k;j++) if (i%j==0) break; if (j>k) { printf("%d ",i); count++; if(count%10==0) { printf("\n"); } } } printf("\n"); } }