方法一:用函数实现求两个数的最大公约数和最小公倍数。
使用的数学方法是欧几里得算法(辗转求余数法)
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