質數的判斷

問題:一數N若為質數,N的因數僅有1與本身數N,也就是說若2~(N-1)中有N之因數(可整除N),那麼N即不是質數。

做法:

  1. 使用一個布林變數isPrime,初值為true(此布林變數表示N是否為質數,程式一開始先認定N為質數)
  2. (迴圈開始)
  3. 使用一迴圈敘述,使用迭代變數i,下限值為2,上限值為N-1,若i可整除N,設定isPrime為false,跳出迴圈
  4. (迴圈結束)
  5. 判斷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");
}

results matching ""

    No results matching ""