Eratosthenes筛选法构造1-n 素数表
Posted shuoed
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eratosthenes筛选法构造1-n 素数表相关的知识,希望对你有一定的参考价值。
筛选法:对于不超过n的每个非负整数p,删除2p,3p,4p...当处理完所有数之后,还没没删除的就是素数。
代码中进行了相应的优化。
1 #include<bits/stdc++.h> 2 using namespace std; 3 int vis[10000]; 4 int main() 5 { 6 int n; 7 while(scanf("%d",&n)) 8 { 9 //-------------- 10 int m=sqrt(n+0.5); 11 memset(vis,0,sizeof(vis)); 12 for(int i=2; i<=m; i++) 13 if(!vis[i]) 14 for(int j=i*i; j<=n; j+=i) 15 vis[j]=1; 16 //--------------- 17 for(int i=2; i<=n; i++) 18 if(!vis[i]) 19 printf(" %d",i); 20 } 21 }
以上是关于Eratosthenes筛选法构造1-n 素数表的主要内容,如果未能解决你的问题,请参考以下文章