HCFまたはGCDを見つけるPythonプログラム

2つの数値の最大公約数(HCF)または最大公約数(GCD)は、指定された2つの数値を完全に分割する最大の正の整数です。 たとえば、12と14のHCFは2です。

ソースコード:ループの使用

# Python program to find H.C.F of two numbers

# define a function
def compute_hcf(x, y):

# choose the smaller number
    if x > y:
        smaller = y
    else:
        smaller = x
    for i in range(1, smaller+1):
        if((x % i == 0) and (y % i == 0)):
            hcf = i 
    return hcf

num1 = 54 
num2 = 24

print("The H.C.F. is", compute_hcf(num1, num2))

出力

The H.C.F. is 6

ここでは、変数に格納されている2つの整数 num1 そして num2 に渡されます compute_hcf() 関数。 この関数は、これら2つの数値のHCFを計算し、それを返します。

関数では、HCFは最小の数値以下しかできないため、最初に2つの数値のうち小さい方を決定します。 次に、 for 1からその番号に移動するループ。

各反復で、数値が両方の入力数値を完全に分割するかどうかを確認します。 その場合、数値をHCFとして格納します。ループが完了すると、両方の数値を完全に分割する最大の数値になります。

上記の方法は理解と実装が簡単ですが、効率的ではありません。 HCFを見つけるためのはるかに効率的な方法は、ユークリッドアルゴリズムです。

ユークリッドアルゴリズム

このアルゴリズムは、2つの数値のHCFがそれらの差も分割するという事実に基づいています。

このアルゴリズムでは、大きい方を小さい方で割り、余りを取ります。 ここで、小さい方をこの余りで割ります。 余りが0になるまで繰り返します。

たとえば、54と24のHCFを求めたい場合、54を24で割ります。余りは6です。ここで、24を6で割り、余りは0です。したがって、6が必要なHCFです。

ソースコード:ユークリッドアルゴリズムの使用

# Function to find HCF the Using Euclidian algorithm
def compute_hcf(x, y):
   while(y):
       x, y = y, x % y
   return x

hcf = compute_hcf(300, 400)
print("The HCF is", hcf)

ここでは、 y ゼロになります。 声明 x, y = y, x % y Pythonで値の交換を行います。 Pythonでの変数の交換の詳細については、ここをクリックしてください。

各反復で、の値を配置します yバツ そして残りは (x % y)y、同時に。 いつ y ゼロになると、HCFが バツ



Hope this helps!

Source link