筛素数
void init()
{
for(i=2;i<maxn;i++){
isprime[i]==true;
}
tot=0;
for(int i=2;i<=maxn;i++){
if(isprime[i]==1){
prime[tot++]=i;//存质数
}
for(int j=0;j<tot && i*isprime[j]<maxn;j++){
isprime[i*prime[j]]=false;
if(i%prime[j]==0)break;//保证被最小的质因数筛去
}
}
}
On线性筛