int q[N],t[N];q用于标记素数可以用bool,t用于存素数
idx=0
cin>>n;
for(int i=2;i<=n;i++){
if(q[i]==0){
t[++idx]=i;保存素数
}
for(int j=1;t[j]*i<=n&&j<=idx;j++){
q[t[j]*i]=1;合数标记为1
if(i%t[j]==0)break;如果i与保存了的素数呈倍数就退出循环,保证就标记一次素数,减时间
}
}
for(int i=2;i<n;i++){输出
if(q[i]==0){
cout<<i<<" ";
}
}