1013. 数素数 (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 #define M 110001
 4 
 5 int mark[M];
 6 int prime[11001];  //使用素数筛选法先筛选出1W个素数
 7 int primeSize;
 8 int main()
 9 {
10     int m,n,temp;
11     int i,j;
12     int cnt = 0;
13     
14     scanf("%d%d",&m,&n);
15     temp =( int) sqrt(M)+1; //如果这里不开方时间复杂度就变成 M*M相当大
16     for( i=2; i<temp; i++)
17     {
18         if( mark[i]==1) continue;
19         for( j=i*i; j<M; j+=i)
20             mark[j] = 1;
21     }
22     for( i=2; i<M; i++)
23     {
24         if( mark[i]==0)
25             prime[primeSize++]=i;
26     }
27     for( j=m-1; j<n-1; j++)
28     {
29         printf("%d",prime[j]);
30         cnt++;
31         if( cnt%10==0)
32             printf("
");
33         else printf(" ");
34     }
35     printf("%d",prime[j]);  //最后一位没有空格
36     return 0;
37 }
在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
原文地址:https://www.cnblogs.com/yuxiaoba/p/8472010.html