#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int set[10000000]={0};
int p[5000000];
void fun(int n)
{
     int t=(int)sqrt(n+1);
     for(int i=3;i<=t;i+=2)
     {
         if(set[i/2])
            continue;
         int k=i*i,p=i+i;
         for(int j=k;j<=n;j+=p)
         {
             set[j/2]=1;
         }
     }
     int count=0;
     p[++count]=2;
     t=(n+1)/2;
     for(int i=1;i<t;i++)
     {
          if(set[i]==0)
             p[++count]=i+i+1;
     }
     for(int i=1;i<count;i++)
     {
              printf("%d\n",p[i]);
     }
}
int main()
{
    int n;
    scanf("%d",&n);
    fun(n);
    //system("pause");
    return 0;
}
posted on 2011-07-21 22:03  枫叶飘泪  阅读(312)  评论(0编辑  收藏  举报