【pat】b1013 数素数

用埃氏筛筛出素数表(节约时间)
素数的筛选范围不能小了,一定要够大

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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("n");
}
for(int j=i+i;j<1000000;j+=i){
hashtable[j]=true;
}
}
}
return 0;
}