关于我假的欧拉筛
查看原帖
关于我假的欧拉筛
141335
qwq2519楼主2021/10/22 16:45
const int N=1e8+79;
int n,q,k;
int prime[N],cnt;
std::bitset<N> vis;

inline void Era(int MX){
	rep(i,2,n){
		if(vis[i]) continue;
		prime[++cnt]=i;
		for(int j=i;j<=MX;j+=i){
			vis[j]=1;
		}
	}
}
int v[N];
inline void EulerSieve(int MX){
	rep(i,2,MX){
		if(!v[i]){
			v[i]=i;
			prime[++cnt]=i;
		}
		rep(j,1,cnt){
			if(prime[j]>v[i]||1ll*i*prime[j]>MX) break;
			v[i*prime[j]]=prime[j];
		}
	}
}

欧拉筛跑得比埃氏筛还慢一点。。是我的欧拉筛写的是假的吗,还是大常数版本的欧拉筛(一直都是这样写的。)

2021/10/22 16:45
加载中...