疑问
暂无
代码
//题中数字是10^4,可以直接打表的,直接上模板即可。
#include "bits/stdc++.h"
const int maxn = 104730; //注意只能加1
int m;
int n;
int prime[maxn],pNum=0;
bool p[maxn] = {0}; //初始化为false
void Find_Prime(){
for(int i=2;i < maxn;i++){
if(p[i] == false){
//是素数
prime[++pNum] = i;
if(pNum > n){
break;
}
for(int j = i+i;j < maxn;j += i){
p[j] = true;
}
}
}
}
int main(){
scanf("%d %d",&m,&n);
Find_Prime();
for(int i=m;i<=n;i++){
printf("%d%c",prime[i],((i-m+1)%10==0)||(i==n) ? '\n':' ');
}
return 0;
}
反思
- 最后一行的最后一个数字不能输出空格;
- 可以先运行以下算法,看看第
1
0
4
10^4
104个质数是多少,从而设置
maxn
的大小(这个想法很赞👍)