数学

Pythonで最小公倍数を求める方法

最小公倍数 (Least Common Multiple: LCM) を求めるには、以下のようにします。

スポンサーリンク

2つの数の最小公倍数

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

上記のコードでは、Python 標準ライブラリの math モジュールの gcd() 関数を使用して、最大公約数 (Greatest Common Divisor: GCD) を求めています。
次に、最小公倍数は、2 つの数の積を最大公約数で割ったものであるため、a と b の積を gcd(a, b) で割ったものを返すようにしています。

3つ以上の数の最小公倍数

from math import prod

def lcm(numbers):
return prod(numbers) // gcd(*numbers)

上記のコードでは、Python 標準ライブラリの math モジュールの prod() 関数を使用して、リスト内の数の積を求めています。
次に、最小公倍数は、自然数の積を最大公約数で割ったものであるため、prod(numbers) を gcd(numbers) で割ったものを返すようにしています。
numbers は、リスト内の要素を展開して、gcd() 関数に渡す書き方です。

例えば、lcm([2, 3, 4]) の場合、結果は 12 になります。

最小公倍数を求めるには、他にも色々な方法があります。
例えば、自分で最小公倍数を求めるアルゴリズムを実装することもできます。
ただし、ここでは、Python 標準ライブラリを使用する方法を紹介しています。

最小公倍数は、複数の数の公倍数のうちで最小の数を指します。
複数の数の最小公倍数を求めることで、それらの数が同じ数で割り切れる最小の数を求めることができます。
例えば、2 つの数の最小公倍数を求めることで、その 2 つの数を同時に割り切ることができる最小の数を求めることができます。

コメント

タイトルとURLをコピーしました