📜  TCS编码实践问题| 2个数字的LCM(1)

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

TCS编码实践问题:2个数字的LCM

什么是LCM?

LCM,又称Least Common Multiple,即最小公倍数。指两个或多个整数共同拥有的最小的倍数,也即是可以被这些整数中的任意一个整数整除的最小正整数。

问题描述

假设有两个正整数 $A$ 和 $B$,求其最小公倍数。

解决方案

我们可以先求出 $A$ 和 $B$ 的最大公约数 $GCD(A, B)$,然后利用下面的公式求得最小公倍数 $LCM(A, B)$:

$$ LCM(A, B) = \frac{A \times B}{GCD(A, B)} $$

以下是代码实现:

def gcd(a, b):
    if b == 0:
        return a
    return gcd(b, a % b)

def lcm(a, b):
    return a * b // gcd(a, b)

其中, gcd 函数是求两个数的最大公约数, lcm 函数是求两个数的最小公倍数。两个函数均采用了递归的方式进行求解。

使用时,只需要调用 lcm 函数即可:

a, b = 6, 9
print(lcm(a, b))  # 输出:18
总结

本文介绍了如何求解两个正整数的最小公倍数。我们可以利用最大公约数的概念,通过简单的数学公式,轻松地求得最小公倍数。