【水题】素数打表

#include<stdio.h>
int a[2000001];
int main()
{
    int i,j,n;
    for(i=2;i<=2000000;i++)
    {
        if(!a[i])  //未被标记
        for(j=i+i;j<=2000000;j+=i)  //素数的倍数不是素数
           a[j]=1;  //标记
    }
    while(scanf("%d",&n),n)
    {
        printf("2");
        for(i=3;i<=n;i++)
            if(!a[i])
                printf(" %d",i);
        printf("\n");
    }
    return 0;
}

 

posted @ 2014-11-23 14:07  6bing  阅读(134)  评论(0编辑  收藏  举报