代码:
#include "stdio.h" #include "math.h" #define NUM 50000000 void suShu() { bool* table = new bool[NUM+1]; //int numbers = 0; for( long i=0; i<=NUM; i++ ) { table[i] = 0;//初始化数组 } long halfNum = (long)sqrt(NUM);//因数最大值 for( long k=2; k<=halfNum; k++ ) { if( table[k] == 0 ) { long l = NUM/k; for( long j=2; j<= l; j++) { table[k*j] = 1;//若为合数,数值变为1 } } } for( long l=2; l<=NUM; l++) { if(table[l] == 0) { //numbers++; printf("%12d",l); } } } int main() { suShu(); return 0; }