#include<iostream>
#define maxn 1000000
using namespace std;
int n,prime[maxn]={1,1,0},prime1[maxn],count=0;
void is_prime()
{
for(int i=2;i<=n;i++)
{
if(prime[i])
continue;
prime1[count++]=i;
for(int j=i*2;j<=n;j+=i)
{
prime[j]=1;
}
}
}
int main()
{
cin>>n;
is_prime();
for(int i=0;i<count;i++)
{
cout<<prime1[i]<<" ";
}
cout<<endl;
return 0;
}
时间复杂度无限接近o(n)