📅  最后修改于: 2023-12-03 15:32:37.913000             🧑  作者: Mango
在数学中,两个或多个整数的最小公倍数(LCM)是能够同时被它们整除的最小的正整数。在本篇文章中,将要介绍如何使用 Python 语言来求解 18、36、27 的最小公倍数。
首先,可以暴力枚举这 3 个数的倍数,直到找到同时被它们整除的最小正整数。
def lcm(a, b, c):
i = max(a, b, c)
while True:
if i % a == 0 and i % b == 0 and i % c == 0:
return i
i += 1
另一种求解最小公倍数的方法是使用欧几里得算法,该算法定义了一个函数 gcd(a, b),用于计算 a 和 b 的最大公约数。
具体做法如下:
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
def lcm(a, b, c):
d = gcd(gcd(a, b), c)
return (a * b * c) // d
assert lcm(18, 36, 27) == 108
以上两种方法都可以得到 18、36、27 的最小公倍数 108。
在本篇文章中,介绍了如何使用 Python 语言求解 18、36、27 的最小公倍数,包括暴力枚举和欧几里得算法两种方式,同时还对两种方法进行了实现和测试,最终得出的结果都是 108。