PAT 1013 數素數
阿新 • • 發佈:2019-01-27
令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 <vector> #include <algorithm> #include <cstdio> #include <cmath> #include <cstdlib> #include <cstring> using namespace std; /* 判斷一個數是不是素數 */ bool isPrimeNum(const int num) { if(num == 2) { return true; } int len = (int)sqrt(num); int i = 0; for(i = 2; i <= len; i++) { if(num % i == 0) { return false; } } return true; } int main() { int M = 0, N = 0; int num = 2, cnts = 0; vector<int> vecPrimer; int i = 0; cin >> M >> N; while(cnts < N) { /* 判讀是不是素數 */ if (isPrimeNum(num) == true) { vecPrimer.push_back(num); cnts++; } num++; } /* 輸出滿足的資料 */ cnts = 0; for(i = M; i <= N; i++) { if(cnts == 0) { cout << vecPrimer[i-1]; } else { cout << " " << vecPrimer[i-1]; } if(cnts == 9) { cout << endl; cnts = 0; } else { cnts++; } } return 0; }