构造素数表2

 1 /*
 2 构造素数表
 3 思路:
 4     欲构造n以内的素数表
 5     1、令x为2
 6     2、将2x、3x、4x直至ax<n的数标记为非素数
 7     3、令y为下一个没有被标记为非素数的数,重复第二步;
 8     4、直到所有的数都已经尝试完毕
 9 
10 伪代码:
11     欲构造n以内(不含)的素数表
12     1、开辟pirme[n],初始化其所有元素为1,prime[x]为1表示x是素数
13     2、令x=2
14     3、如果x是素数,则对于(i=2;x*i<n;i++)令prime[i*x]=0
15     4、令x++,如果x<n,重复3,否则结束
16 */
17 #include<stdio.h>
18 
19 int main(void)
20 {
21     const int maxNumber = 25;
22     int isPrime[maxNumber];        
23     for (int i = 0; i < maxNumber; i++)
24     {
25         isPrime[i] = 1;
26     }
27 
28     for (int x = 2; x < maxNumber; x++)
29     {
30         if (isPrime[x])
31         {
32             for (int i = 2; (i * x) < maxNumber; i++)
33             {
34                 isPrime[i * x] = 0;
35             }
36         }
37     }
38     for (int i = 2; i < maxNumber; i++)
39     {
40         if (isPrime[i])
41         {
42             printf("%d	", i);
43         }
44     }
45     printf("
");
46     
47     
48     return 0;
49 }

原文地址:https://www.cnblogs.com/2018jason/p/12015246.html