查找两个数字的 GCD 的 C++ 程序

2024 年 8 月 28 日 | 3 分钟阅读

在本教程中,我们将编写一个 C++ 程序来查找两个数的最大公约数。

最大公约数 (GCD) 也称为最高公因数 (HCF)。

例如

36 = 2 * 2 * 3 * 3

60 = 2 * 2 * 3 * 5

这两个数的最高公因数是 2、2 和 3。

所以,这两个数的最高公因数是 2 * 2 * 3 = 12

20 = 2 * 2 * 5

28 = 2 * 2 * 7

这两个数的最高公因数是 2 和 2。

所以,这两个数的最高公因数是 2 * 2 = 4。

方法 1

这个问题可以通过找到这两个数的所有质因数,然后找到公因数并返回它们的乘积来解决。

  • 找到第一个数的因数
  • 找到第二个数的因数
  • 找到两个数的公因数
  • 将它们相乘得到最大公约数

C++ 代码

输出

GCD of 36 and 60 is 12

方法 2

方法 1 可以使用欧几里得算法以更有效的方式解决。该算法遵循这样的思想:如果较小的数从较大的数中减去,则最大公约数不会改变。

C++ 代码

输出

GCD of 36 and 60 is 12

方法 3

方法二可以进一步优化,使用模运算符代替减法。

C++ 代码

输出

GCD of 60 and 36 is 12