1. 程式人生 > >PAT乙級 1003數素數

PAT乙級 1003數素數

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; }