用 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
廣告