📅  最后修改于: 2023-12-03 15:41:05.255000             🧑  作者: Mango
本文介绍如何使用迭代方式查找两个数的最大公约数(HCF),即最大公因数。我们将使用经典的欧几里得算法,也称为辗转相除法。
欧几里得算法通过重复用较小的数去除较大的数,得到余数,然后用之前的余数去除刚才的除数,一直重复,直到余数为 0。此时,除数就是最大公约数。
下面是欧几里得算法的代码:
def hcf_iterative(a, b):
while b:
a, b = b, a % b
return a
这是一个迭代函数,接受两个参数 a 和 b。它通过重复用较小的数 b 去除较大的数 a,并将余数赋值给 b,直到 b 为 0。最后返回 a,就是最大公约数。
print(hcf_iterative(10, 25)) # 输出 5
print(hcf_iterative(14, 28)) # 输出 14
print(hcf_iterative(17, 23)) # 输出 1
以上是使用示例,分别计算了 10 和 25、14 和 28、17 和 23 两数的最大公约数。可以看到,程序都能正确计算出最大公约数。
本文介绍了如何使用迭代方式查找两个数的最大公约数。我们使用了欧几里得算法,通过重复用较小的数去除较大的数,得到余数,然后用之前的余数去除刚才的除数,一直重复,直到余数为 0。在 Python 中,我们可以用一个 while 循环实现这个算法。