📜  lcm of 18 36 27 (1)

📅  最后修改于: 2023-12-03 15:32:37.913000             🧑  作者: Mango

求解 18、36、27 的最小公倍数

简介

在数学中,两个或多个整数的最小公倍数(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 的最大公约数。

具体做法如下:

  • 计算 a 和 b 的最大公约数 d。
  • 将 a 和 b 分别除以 d,得到 a' 和 b'。
  • 最小公倍数等于 a' 和 b' 的乘积乘以 d。
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。