埃氏筛选法
bool vis[maxn]
memset( vis,0,sizeof(vis));
vector<int>p;
void sift(int n){
for(int i = 2; i * i <= n ; i++){
if(!vis[i]){
p.push_back(i);
for(int j = i*i ; j < n ; j += i)
prime[j] = true;
}
}
}
欧拉筛法
void sift( int n ){
vector<int>primes;
vector<bool>vis;
flag.resize(n+1,false)
for(int i = 2; i <= n; i++){
if(!vis[i])
primes.push_back(i);
for(int p : primes ){
if(j*i>n) break;
vis[i*j] = 1;
if(i%j == 0) break;
}
}
}