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 }
![](https://img2018.cnblogs.com/common/1315374/201912/1315374-20191210104349282-1248132587.png)