Python の最小公倍数 (LCM)

Python で HCF 関係を使用して 2 つの数値の最小公倍数 (LCM) を求めます。

エディターで試してみる

概要

2 つの整数の最小公倍数 (LCM) は、両方の数値で割り切れる最小の正の整数です。

HCF (GCD) と LCM の間には、「LCM(a, b) = abs(a * b) // GCD(a, b)」という基本的な関係があります。 GCD がわかれば、即座に LCM を計算できます。

この計算は、大きな数値の倍数を反復処理するよりもはるかに高速で、メモリの使用量も少なくなります。

コードと実行の出力

GCD ベースのリダクションを使用した LCM 計算機。

def find_gcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a

def find_lcm(a, b):
    if a == 0 or b == 0:
        return 0
    return abs(a * b) // find_gcd(a, b)

print("LCM of 12 and 18 is:", find_lcm(12, 18))
print("LCM of 5 and 7 is:  ", find_lcm(5, 7))
端子出力
LCM of 12 and 18 is: 36
LCM of 5 and 7 is:   35

段階的な実装

  • 定期的なバックグラウンド ジョブと cron 実行の調整
  • 分数の加算および減算の分母のスケーリング
  • 競合検出のスケジュール設定

よくある質問

数値を掛ける前に GCD で割るのはなぜでしょうか?

最初に除算することで、整数サイズが固定された言語での整数オーバーフローの可能性を防ぎます。 Python は任意の大きな整数を処理しますが、それでもベスト プラクティスです。

関連トピック