#include<iostream>
#include<cstdio>
using namespace std;
int v[105],pri[105],t,n;
int main()
{
cin>>n;
for(int i=2;i<=n;i++)
{
if(v[i]==0)
{
v[i]=i;//素数的最小质因子是自己
pri[++t]=i;
// cout<<t<<","<<pri[t]<<endl;
}
for(int j=1;j<=t;j++)
{
if(pri[j]>v[i] || pri[j]*i>n)break;//比如说3*4=12 因为v[4]=2因此break
v[pri[j]*i]=pri[j];
// cout<<pri[j]*i<<","<<pri[j]<<endl;
}
}
for(int i=1;i<=t;i++)
cout<<pri[i]<<" ";
}
线性筛-方法2
最新推荐文章于 2024-04-03 00:02:46 发布