PAT乙級 1003數素數
阿新 • • 發佈:2018-11-19
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;
}