#include<iostream>
#include<string.h>
using namespace std;
int v[100010];
int prime[100010];
int n;
int m=0;
int main() {
cin>>n;
memset(v,0,sizeof(v));
for(int i=2; i<=n; i++) {
if(v[i]==0) {
v[i]=i;
prime[++m]=i;
}
for(int j=1; j<=m; j++) {
if(prime[j]>v[i]||prime[j]>n/i) break;
v[i*prime[j]]=prime[j];
}
}
for(int i=1;i<=m;i++)
cout<<prime[i]<<endl;
return 0;
}
质因数的筛选——线性筛
最新推荐文章于 2023-01-04 00:03:01 发布