用埃氏筛筛出素数表(节约时间)
素数的筛选范围不能小了,一定要够大
#include<stdio.h>
int main(){
int N,M;scanf("%d %d",&M,&N);
int pnum=0,num=0;
bool hashtable[1000000]={0};
for(int i=2;i<1000000;i++){
if(hashtable[i]==false){//如果没有被筛去
pnum++;
if(pnum>=M&&pnum<=N){//空格,换行
num++;
if(num%10!=1)printf(" ");
printf("%d",i);
if(num%10==0)printf("
");
}
for(int j=i+i;j<1000000;j+=i){
hashtable[j]=true;
}
}
}
return 0;
}