PAT 乙级 1013

227 阅读1分钟
1013 数素数 (20分)

令 P​i​​ 表示第 i 个素数。现任给两个正整数 M≤N≤10​4​​,请输出 P​M​​ 到 P​N​​ 的所有素数。

输入格式:

输入在一行中给出 M 和 N,其间以空格分隔。

输出格式:

输出从 P​M​​ 到 P​N​​ 的所有素数,每 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<vector> 

#include<cmath>

 using namespace std;

 bool isPrime(int N)

{ if(N==2||N==3)return true;

 for (int i=2;i<=sqrt(N);i++) i

f(N%i==0)return false; 

return true;

 } 

int main(){ 

int M,N; 

cin>>M>>N;

 int index=0;

 vector<int>v; 

 for(int i=2;;i++){ 

 if(isPrime(i)) {

 index++; 

 if(index>=M&&index<=N) v.push_back(i); 

 if(N==index)break; 

 for(int i=1;i<=v.size();i++)

{cout<<v[i-1]; 

 if(i!=v.size())

 { if(i%10==0)cout<<endl;

 else cout<<" "; 

 system("pause");

 return 0; 

 }