素数筛
埃氏筛
inline void get_prime(){
bool limit[N];
limit[0]=limit[1]=true;
for(int i=2;i<=n;i++){
if(!limit[i]){
prime[++cnt]=i;
for(int j=i*2;j<=n;j+=i)
limit[j]=true;
}
}
}
线性筛(欧拉筛)
inline void oula_get_prime(){
bool limit[N];
limit[0]=limit[1]=true;
for(int i=2;i<=n;i++){
if(!limit[i])
prime[++cnt]=i;
for(int j=1;j<=cnt&&prime[j]*i<=n;j++){
limit[prime[j]*i]=true;
if(i%prime[j]==0)
break;//如果i已经是prime[j]的倍数,那么就可以退出了
}
}
}