//筛法是把不是素数的数标记掉,因此先要默认全为素数,先打表,不要每次打表
#include<stdio.h>
#include<math.h>
#include<string.h>
#define N 2000001
int visit[N];
void shaifa()
{
int i,j;
int m=(int)(sqrt(N)+0.5);
memset(visit,0,sizeof(visit));
for(i=2;i<m;i++)
if(!visit[i])//是素数
{
for(j=2*i;j<N;j+=i)
visit[j]=1;
}
}
int main()
{
int T,i;int ans;
shaifa();
while(scanf("%d",&T),T)
{
for(i=2;i<=T;i++)
if(visit[i]==0) printf("%d ",i);
printf("\n");
}
return 0;
}


 


 


作者:​​火星十一郎​

本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.