C++ 程式檢查一個數字是否可以表示為兩個質數的和


以下是一個示例,檢查一個數字是否可以表示為兩個質數的和。

示例

 Live Demo

#include <iostream>
using namespace std;
int func(int num) {
   int i;
   int flag = 1;
   for(i = 2; i <= num/2; ++i) {
      if(num % i == 0) {
         flag = 0;
         break;
      }
   }
   return flag;
}
int main() {
   int num , i;
   cout << "Enter a number : \n";
   cin >> num;
   for(i = 2; i <= num/2; ++i) {
      if (func(i)) {
         if (func(num - i)) {
            cout << num << " = " << i << " + " << num-i << endl;
         }
      }
   }
   return 0;
}

輸出

Enter a number : 18
18 = 5 + 13
18 = 7 + 11

在上面的程式中,func() 函式檢查這個數字是不是質數。

int func(int num) {
   int i;
   int flag = 1;
   for(i = 2; i <= num/2; ++i) {
      if(num % i == 0) {
         flag = 0;
         break;
      }
   }
   return flag;
}

在 main() 函式中,使用者輸入了一個數字。它計算這個數字作為兩個質數的和。

cout << "Enter a number : \n";
cin >> num;
for(i = 2; i <= num/2; ++i) {
   if (func(i)) {
      if (func(num - i)) {
         cout << num << " = " << i << " + " << num-i << endl;
      }
   }
}

更新於: 26-6 月 -2020

1 千 + 瀏覽次數

開啟你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.