用 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 次浏览

开启你的 职业 生涯

完成课程即可获得认证

开始
广告