筛选法求素数
#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; }
世上无难事,只要肯登攀。