超快线性筛,挖坑。
欧拉线性筛,顾名思义,他的时间复杂度是线性的,在处理特别大的数据的时候,线性筛法的复杂度会更低。
关于打印素数的详细解析就点这个链接吧,写的超级棒。http://coolshell.cn/articles/3738.html
线性筛的模板
const int maxn=5e7;
int prime[3010000];
int primeNum;
bool h[maxn];
void calPrime3()
{
for(int i=2;i<maxn;i++)
{
if(!h[i]) prime[primeNum++]=i;
for(int j=0;j<primeNum;j++)
{
if(i*prime[j]>maxn) break;
h[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
}