[C_MM167-易] 質數輸出
質數輸出
問題描述
質數是一種只能由數字 1 或本身能除盡的數字。如果需要輸出介於 N 到 M (含 N 與 M) 範圍所有的質數,最簡單的作法是利用雙迴圈。外迴圈逐一條列 N 至 M 每個數字,內迴圈則檢視被條列的數字是否為質數。一個數字 x 如果為質數,表示由 2 至 x-1 所有的數字皆無法除盡 x 。請寫一個程式,輸出介於任兩數字間的所有質數。
輸入說明
每一行輸入兩個數字由單一空格分隔,分別表示題意的 N 與 M ( N, M>=0 且 N≤M≤2014 )。如果 N 與 M 皆為數字 0 則結束程式執行。
輸出說明
輸出介於 N 與 M (含 N 與 M )範圍的所有質數,每輸出一個數字後方留單一空格。
範例 :
問題描述
質數是一種只能由數字 1 或本身能除盡的數字。如果需要輸出介於 N 到 M (含 N 與 M) 範圍所有的質數,最簡單的作法是利用雙迴圈。外迴圈逐一條列 N 至 M 每個數字,內迴圈則檢視被條列的數字是否為質數。一個數字 x 如果為質數,表示由 2 至 x-1 所有的數字皆無法除盡 x 。請寫一個程式,輸出介於任兩數字間的所有質數。
輸入說明
每一行輸入兩個數字由單一空格分隔,分別表示題意的 N 與 M ( N, M>=0 且 N≤M≤2014 )。如果 N 與 M 皆為數字 0 則結束程式執行。
輸出說明
輸出介於 N 與 M (含 N 與 M )範圍的所有質數,每輸出一個數字後方留單一空格。
範例 :
輸入範例 | 輸出範例 |
2 10 13 18 0 0 | 2 3 5 7 13 17 |
- #include <iostream>
- using namespace std;
- int PRIME(int, int, int, int*);
- int main() {
- // [C_MM167-易] 質數輸出
- while(true)
- {
- int x, y;
- cin >> x >> y;
- int count = 0;
- int prime[10000];
- if(x != 0 && y != 0)
- {
- PRIME(x, y, count, prime);
- }
- else
- {
- break;
- }
- }
- return 0;
- }
- int PRIME(int x, int y, int r, int *p){
- for(int i = x;i <= y;i++)
- {
- int c = 0;
- for(int j = 1;j <= i;j++)
- {
- if(i % j == 0)
- {
- c++;
- }
- }
- if(c == 2)
- {
- p[r] = i;
- r++;
- }
- }
- if(r != 0)
- {
- for(int i = 0;i < r;i++)
- {
- cout << p[i] << " ";
- }
- cout << endl;
- }
- }
沒有留言:
張貼留言