PAT (Basic Level) Practice (中文)-1013-数素数 (20分)
程序员文章站
2024-03-19 08:51:04
...
题目链接
令 Pi表示第 i 个素数。现任给两个正整数 M≤N≤104 ,请输出 PM到 PN的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 PM到 PN的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
#include <iostream>
#include <queue>
using namespace std;
bool isPrime(int number)
{
if(number==1) return 0;
if(number==2) return 1;
for(int i=2;i*i<=number;i++)
if(number%i==0) return 0;//找到因子就返回false
return 1;
}
int main(){
int n,m;
cin>>n>>m;
queue<int> q;
int t=2;
for(int i=1;i<=m;i++){ //先找出第1个到第M个
while(true){
if(isPrime(t)){
q.push(t);
if(i<n) q.pop(); //在N之前的就删掉 最终得到[N,M]
t++;
break;
}
t++;
}
}
for(int i=0;i<m-n+1;i++){
cout<<q.front();
q.pop();
if(i!=m-n){ //最后没有空格 十个数一换行
if((i+1)%10!=0) cout<<" ";
else cout<<endl;
}
}
}
推荐阅读
-
PAT (Basic Level) Practice (中文)-1013-数素数 (20分)
-
PAT (Basic Level) Practice (中文)1016 部分A+B C语言版 (15分)
-
PAT (Basic Level) Practice (中文)1013 数素数 (20 分)
-
PAT (Basic Level) Practice (中文)1013 数素数 (20)
-
【JAVA】1004 成绩排名 (20分) PAT乙级 PAT (Basic Level) Practice(中文)
-
PAT (Basic Level) Practice (中文)1013 数素数 C语言版 (20分)
-
【PAT (Basic Level) Practice (中文)】1013 数素数 (20 分)题解
-
【PAT (Basic Level) Practice (中文)】1013 数素数 (20 分) (15 分)python题解:
-
PAT (Basic Level) Practice (中文)1013 数素数(20 分)C语言
-
PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20 分)(Java实现)