07-3. 数素数 (20)
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103
1 #include <stdio.h> 2 #include <math.h> 3 4 int main() 5 { 6 int m, n; 7 scanf("%d %d", &m, &n); 8 int k, a, b=0 ,i, c[10000]; 9 for(a = 2; ; a++) { //先求前10000个素数并存放在c数组中 10 k=sqrt(a); //k等于a的开根号 11 for(i = 2; i <= k; i++) { 12 if(a % i == 0) 13 break; 14 } 15 if(i>k) { //判断是否为素数 16 c[b]=a; 17 b++; 18 if(b >= 10000) //结束条件 19 break; 20 } 21 } 22 int d = 0; 23 for(i = m; i <= n; i++) { 24 d++; 25 printf("%d", c[i-1]); //输出第i个素数 26 if(d % 10 != 0 && i != n) { 27 printf(" "); 28 } 29 else if(d % 10 == 0) { 30 printf("\n"); 31 } 32 } 33 }