[C_AR177-易] 列出介於(含)兩個自然數間的所有質數
Time Limit: 2 seconds
問題描述 :
針對某對自然數 ( 大於等於 2 且小於 10000) ,程式會由小至大輸出所有介於 ( 含 ) 此對自然數間的所有質數。
輸入說明 :
首先,程式要求輸入一個正整數 (<10) ,代表接下來要列出幾對自然數間的質數。
然後,輸入兩個相應對數的自然數a b(不超過10,000)。
※a<b<=10,000
例如,
2
7 18
20 22
表示有 2 對,依序是 7~18 及 20~22 。
輸出說明 :
由小到大, 輸出找到的質數,並且每個質數間以一個「 , 」隔開,每輸出完一組質數便換行。若某對自然數間沒有質數,就輸出「 none 」並換行。
例如針對上述輸入,則輸出 :
7,11,13,17
none
表示介於 7 與 18 的質數由小至大分別是 7,11,13 與 17 。然而沒有質數介於 20 與 22 。
範例 :
問題描述 :
針對某對自然數 ( 大於等於 2 且小於 10000) ,程式會由小至大輸出所有介於 ( 含 ) 此對自然數間的所有質數。
輸入說明 :
首先,程式要求輸入一個正整數 (<10) ,代表接下來要列出幾對自然數間的質數。
然後,輸入兩個相應對數的自然數a b(不超過10,000)。
※a<b<=10,000
例如,
2
7 18
20 22
表示有 2 對,依序是 7~18 及 20~22 。
輸出說明 :
由小到大, 輸出找到的質數,並且每個質數間以一個「 , 」隔開,每輸出完一組質數便換行。若某對自然數間沒有質數,就輸出「 none 」並換行。
例如針對上述輸入,則輸出 :
7,11,13,17
none
表示介於 7 與 18 的質數由小至大分別是 7,11,13 與 17 。然而沒有質數介於 20 與 22 。
範例 :
輸入範例 | 輸出範例 |
2 7 18 20 22 | 7,11,13,17 none |
- #include <iostream>
- using namespace std;
- int PRIME(int, int, int, int*);
- int main() {
- // [C_AR177-易] 列出介於(含)兩個自然數間的所有質數
- int n, a, b;
- cin >> n;
- for(int i = 0;i < n;i++)
- {
- cin >> a >> b;
- int count = 0;
- int prime[10000];
- PRIME(a, b, count, prime);
- }
- 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)
- {
- cout << "none" << endl;
- }
- else
- {
- for(int i = 0;i < r;i++)
- {
- if(i == 0)
- {
- cout << p[i];
- }
- else
- {
- cout << "," << p[i];
- }
- }
- cout << endl;
- }
- }
沒有留言:
張貼留言