2つの数値の最小公倍数(LCM)は、与えられた2つの数値で完全に割り切れる最小の正の整数です。
たとえば、12と14のLCMは84です。
LCMを計算するプログラム
# Python Program to find the L.C.M. of two input number
def compute_lcm(x, y):
# choose the greater number
if x > y:
greater = x
else:
greater = y
while(True):
if((greater % x == 0) and (greater % y == 0)):
lcm = greater
break
greater += 1
return lcm
num1 = 54
num2 = 24
print("The L.C.M. is", compute_lcm(num1, num2))
出力
The L.C.M. is 216
注意: このプログラムをテストするには、の値を変更します num1
そして num2
。
このプログラムは2つの数を格納します num1
そして num2
それぞれ。 これらの番号はに渡されます compute_lcm()
関数。 この関数は、2つの数値のLCMを返します。
関数では、LCMは最大数以上にしかできないため、最初に2つの数値の大きい方を決定します。 次に、無限を使用します while
その数以降に移動するループ。
各反復で、両方の数値が数値を完全に分割しているかどうかを確認します。 その場合、番号をLCMとして保存し、ループから抜け出します。 それ以外の場合、番号は1ずつ増加し、ループが続行されます。
上記のプログラムは実行が遅くなります。 2つの数の積が、これら2つの数の最小公倍数と最大公約数の積に等しいという事実を使用することで、より効率的にすることができます。
Number1 * Number2 = L.C.M. * G.C.D.
これを実装するPythonプログラムは次のとおりです。
GCDを使用してLCMを計算するプログラム
# Python program to find the L.C.M. of two input number
# This function computes GCD
def compute_gcd(x, y):
while(y):
x, y = y, x % y
return x
# This function computes LCM
def compute_lcm(x, y):
lcm = (x*y)//compute_gcd(x,y)
return lcm
num1 = 54
num2 = 24
print("The L.C.M. is", compute_lcm(num1, num2))
このプログラムの出力は以前と同じです。 2つの機能があります compute_gcd()
そして compute_lcm()
。 LCMを計算するには、数値のGCDが必要です
そう、 compute_lcm()
関数を呼び出します compute_gcd()
これを達成するために。 2つの数値のGCDは、ユークリッドアルゴリズムを使用して効率的に計算できます。
PythonでGCDを計算する方法の詳細については、ここをクリックしてください。
Hope this helps!
Source link