[C_MM29-易] 最大質數問題(C++)
[C_MM29-易] 最大質數問題
- #include <iostream>
- using namespace std;
-
- int main() {
- int num; //輸入一個正整數
- int result = 0; //最大質數
- bool p = true; //是否是質數
-
- while(cin >> num) //不知幾筆測資
- {
- for(int i = (num-1); i > 0; i--)
- //從num開始往下遞減,自己不測試,如果本身是質數會輸出自己,例如97。
- {
- for(int j = 1;j < num;j++) //被除數,從1開始一個個被i除,看否為質數
- {
- if(i % j == 0 && i != j && i != 1 && j != 1 && i != num && j != num)
- //如果可以被除了自己和1以外的整除的話,就不是質數
- {
- p = false;
- }
- }
- if(p == true)
- //如果還是質數的話,輸出i,因為是從自己往下遞減,所以找到的第一個質數,
- //就是最大的,之後就不用在做了
- {
- cout << i << endl;
- break; //結束迴圈
- }
- result = 0;
- p = true;
- }
- }
- }
沒有留言:
張貼留言