欧拉筛降维打击
2023-12-10 22:36:08
发布于:浙江
17阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1E7;
int prime[MAXN];
bool vis[MAXN];//标记用
int cnt=0;
void ols(int n) {//自定义函数欧拉筛
for(int i=2; i<=n; i) {
if(!vis[i]) {
prime[cnt]=i;
}
for(int j=0; j<cnt; j) {
if(iprime[j]>n)break;//防止超过n
vis[iprime[j]]=true;//提前标记合数
if(i%prime[j]==0)break;
}
}
}
int main(){
int n;
cin>>n;
ols(n);
for(int i=2;i<=n;i){
if(vis[i]==false){//如果不是合数就输出
cout<<i<<" ";
}
}
return 0;
}
全部评论 2
我也想写欧拉的
2024-01-11 来自 江苏
0欧拉筛做较大数据时速度比普通方法快很多!时间复杂度仅为O(n)
2023-12-10 来自 浙江
0
有帮助,赞一个