代码:
#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;
}