埃氏筛
bool b[2000010];
long long n;
cin >> n;
b[1]=1;
for(int i=2;i*i<=n;i++)
if(b[i]==0)
for(int j=i*i;j<=n;j+=i) b[j]=1;
欧拉筛(线性筛)
long long n,prime[5800001],ans;
bool b[100000010];
cin >> n;
for(int i=2; i<=n; ++i){
if(!b[i]) prime[++ans]=i;
for(int j=1; prime[j]*i<=n && j<=ans; ++j){
b[i*prime[j]]=true;
if(!(i%prime[j])) break;
}
}