PAT乙级 1003数素数
- 题目描述
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出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<cmath>
#include<vector>
using namespace std;
bool isPrime(int n){
if(n<=2) return true;
int t=sqrt(n);
for(int i=2;i<=t;i++){
if(n % i == 0)
return false;
}
return true;
}
void output(vector<int> x,int M,int N){
int num=0;
for(int i=M;i<=N;i++){
if(num!=0){
cout<<" ";
}
cout<<x[i];
num++;
if(num==10){
cout<<endl;
num=0;
}
}
}
int main(){
int M,N;
cin>>M>>N;
vector<int>x;
for(int i=1;x.size()<=N;i++){
if(isPrime(i)){
x.push_back(i);
// cout<<i<<endl;
}
}
output(x,M,N);
return 0;
}