埃氏筛/欧拉筛模板

素数筛:筛取1~n范围内的素数

埃氏筛

时间复杂度O(nloglogn)

vector<int>prim;
bool vis[maxn];
void e(int n){
	rep(i,2,n){
		if(!vis[i]){
		prim.pb(i);
		for(int j=i*i;j<=n;j+=i)vis[j]=true;
		}
	}
}

欧拉筛

时间复杂度O(n)

vector<int>prim;
bool vis[maxn];
void euler(int n){
	rep(i,2,n){
		if(!vis[i])prim.pb(i);
		
		for(int j=0;i*prim[j]<=n&&j<prim.size();j++){
			vis[i*prim[j]]=true;
			if(i%prim[j]==0)break;
		}
	}
}

posted @ 2025-02-24 15:42  Marinaco  阅读(36)  评论(0)    收藏  举报
//雪花飘落效果