欧拉筛

const int maxn=1e8+10;
int primes[maxn],idx=0;       ////实际上1e8以内的素数远远没有这么多,不必开这么大
bool mark[maxn];
void get_prime(){               ////线性筛
    for(int i=2;i<maxn;i++){
        if(!mark[i]) primes[++idx]=i;
        for(int j=1;j<=idx;j++){
            if(i*primes[j]>maxn) break;
            mark[i*primes[j]]=1;
            if(i%primes[j]==0) break;
        }
    }
}

 

posted @ 2023-03-29 19:56  osir  阅读(2)  评论(0编辑  收藏  举报