下面是完整的“python辗转相除法求最大公约数和最小公倍数的实现”的攻略:
什么是辗转相除法
辗转相除法,也称为欧几里得算法,是一种求最大公约数的方法。其基本思路是:将两个数中较大的数除以较小的数,得到余数后,将较小的数和余数继续进行相除,直到余数为0,此时较小的数就是原来两个数的最大公约数。辗转相除法是求最大公约数的一种简单高效的算法。
辗转相除法求最大公约数的实现
下面我们用Python实现辗转相除法求最大公约数:
def gcd(x, y):
'''
求两个正整数的最大公约数
'''
if y == 0:
return x
else:
return gcd(y, x % y)
# 测试用例
print(gcd(12, 18)) # 输出6
print(gcd(14, 28)) # 输出14
代码中,我们定义了一个名为gcd()
的函数,用于计算两个正整数的最大公约数。在函数中,我们使用了递归的方法,如果y
等于0,则返回x
,否则返回y
和x%y
的最大公约数。在测试用例中,我们分别将(12,18)和(14,28)作为参数,运行程序后输出了对应的最大公约数。
辗转相除法求最小公倍数的实现
下面我们用Python实现辗转相除法求最小公倍数:
def lcm(x, y):
'''
求两个正整数的最小公倍数
'''
return x * y // gcd(x, y)
# 测试用例
print(lcm(12, 18)) # 输出36
print(lcm(14, 28)) # 输出28
代码中,我们定义了一个名为lcm()
的函数,用于计算两个正整数的最小公倍数。我们用公式x * y // gcd(x, y)
计算最小公倍数,除号//
表示整数除法,将结果向下取整。在测试用例中,我们分别将(12,18)和(14,28)作为参数,运行程序后输出了对应的最小公倍数。
总结
辗转相除法是求最大公约数和最小公倍数的一种简单高效的算法,在Python中的实现也比较简单。我们只需要定义一个求最大公约数的函数gcd()
,再利用该函数实现求最小公倍数的函数lcm()
即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python辗转相除法求最大公约数和最小公倍数的实现 - Python技术站