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 }