偶尔看到一本比较古老的书,才发现 筛选法 往出筛素数 并不是多么新新的算法,相反是一个挺古老的算法
大家帮我看看 是不是这样子筛选的 是否有漏洞 或者有待优化的地方程序代码:
#include <stdio.h> #define max 300 //使用筛选法列举素数 int main() { int i=2; int k,j; int t[max]={0}; for(k=0;k<max;k++) t[k]=i+k; //为待扫描数据赋初值 自然数序列 从2开始 i=0; k=t[i]; //初始素数 while(i<max) { i++; for(j=i;j<max;j++) if(t[j]%k==0) t[j]=0; //凡能够整除者 赋0 while(t[i]==0) i++; //搜索下一个素数 k=t[i]; } for(k=0;k<max;k++) { if(t[k]!=0) printf("%d ",t[k]); //不是0者,即素数 打印输出 } printf("\n"); return 0; }