質數的判斷
問題:一數N若為質數,N的因數僅有1與本身數N,也就是說若2~(N-1)中有N之因數(可整除N),那麼N即不是質數。
做法:
- 使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數)
- (迴圈開始)
- 使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,若i可整除N,設定isPrime為false,跳出迴圈
- (迴圈結束)
- 判斷isPrime為true輸出N為"質數",否則,輸出輸出N為"不是質數"。
程式範例解答
#include <iostream>
using namespace std;
void main(){
int N = 11;
int i = 2;
bool isPrime = true;
while (i <= N-1 && isPrime){
if (N % i == 0) {
isPrime = false;
break;
}
i++;
}
if (isPrime){
cout << "是質數";
} else {
cout << "不是質數";
}
system("pause");
}