欧拉筛板子
#include<iostream> using namespace std; int n,p[30000],f[30000],cnt; void shai(int x){ for(int i=2;i<=n;i++){ if(f[i]==0)p[++cnt]=i; for(int j=1;j<=cnt;j++){ if(i*p[j]>n)break; f[i*p[j]]=1; if(i%p[j]==0)break; } } } int main(){ cin>>n; shai(n); for(int i=1;i<=cnt;i++)cout<<p[i]<<' '; }