闲着没事翻了一下博客,最近素数也写的比较多,就是各种打表各种筛。。。。。。
然后就发现了这个线性筛,没有啥子理解直接记个模板吧
代码:
int prime[3000001];
bool vis[3000001];
void init(int n)
{
int cnt=0;
memset(vis,false,sizeof vis );
for(int i=2;i<17000;i++)
{
if(!vis[i])
prime[cnt++]=i;
for(int j=0;j<cnt;j++)
{
if(i*prime[j] >17000)
break;
vis[i*prime[j]=true;
if((i%prime[j])==0)
break;
}
}
}
-------待续