方法一:用函数实现求两个数的最大公约数和最小公倍数。
使用的数学方法是欧几里得算法(辗转求余数法)
def gcd(x, y):
""" 求最大公约数"""
while y % x != 0:
x, y = y % x, x
return x
def lcm(x, y):
"""求最小公倍数"""
return x * y // gcd(x, y)
print(gcd(9, 6)) # 3 18
print(lcm(6, 9)) # 3 18
方法二:非定义函数,但也是欧几里得算法(辗转求余数法)求最大公约数
x = int(input('x='))
y = int(input('y='))
while y % x != 0:
x, y = y % x, x
print(x) # 此处求出最大公约数
方法三:循环求最大公约数
n1 = int(input('n1='))
n2 = int(input('n2='))
for i in range(n1, 0, -1):
if n1 % i == 0 and n2 % i == 0:
print(i)
break
本文介绍三种方法来求解两个整数的最大公约数(GCD)及最小公倍数(LCM),包括使用函数实现的欧几里得算法、非定义函数方式以及循环迭代方法。

被折叠的 条评论
为什么被折叠?



