筛选法求素数

 

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>

#define MAX 10000000


bool b[MAX];

void Prime()
{
     int num = 0, t = sqrt(1.0*MAX);

     memset(b, true, sizeof(b));

     for(int i=2; i < t; i++)
     {
          if(b[i])
          {
               for(int j = 2; j * i < MAX; j++) b[j*i]=false;
           }
     }
     for(int i=2; i < MAX; i++)
		 if(b[i]){num++;printf("%d ", i);}
     printf("\nTOT=%d\n", num);
}

int main()
{
     Prime();

//	 system("pause");
     return 0;
}

  

posted @ 2013-11-24 17:37  偶尔会寂寞  阅读(229)  评论(0编辑  收藏  举报