构造素数表2

非 Y 不嫁゛ 提交于 2019-12-10 10:56:42
 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\t", i);
43         }
44     }
45     printf("\n");
46     
47     
48     return 0;
49 }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!