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