用 C++ 找出總和和 GCD 已知的兩個數


已知兩個數 a 和 b 的和和 GCD,需要找到兩個數 a 和 b。如果找不到此類數字,則返回 -1。假設和為 6,GCD 為 2,則這兩個數為 4 和 2。

方法如下,已知 GCD,可以得出此數將是 GCD 的倍數。現在,執行以下步驟

  • 如果將第一個數字選為 GCD,則第二個數字將為 sum − GCD

  • 如果前一步中選擇的兩個數的和與給定的和相同,則列印兩個數。

  • 否則,列印 -1,表示不存在該數字。

示例

 線上演示

#include <iostream>
#include <algorithm>
using namespace std;
void printTwoNumbers(int s, int g) {
   if (__gcd(g, s - g) == g && s != g)
      cout << "first number = " << min(g, s - g) << "\nsecond number = " << s - min(g, s - g) << endl;
   else
      cout << -1 << endl;
}
int main() {
   int sum = 6;
   int gcd = 2;
   printTwoNumbers(sum, gcd);
}

輸出

first number = 2
second number = 4

更新日期: 2019-10-21

159 次瀏覽

開啟你的 職業 生涯

完成課程即可獲得認證

開始
廣告