没错就是乌拉筛(其实是欧拉筛
)
//欧拉筛
void Euler_sieve(int n) {
for(int i=0; i<=n; ++i)
isprime[i]=true;
prime[0]=0;
for(int i=2; i<=n; ++i) {
if(isprime) prime[++prime[0]]=i;
for(int j=1; j<=prime[0]&i*prime[j]<=n; ++j) {
isprime[i*prime[j]]=false;
if(i%prime[j]==0) break;
}
}
}