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 }

 

posted @ 2014-07-30 12:19  Acalm  阅读(720)  评论(0编辑  收藏  举报