📜  用于查找HCF或GCD的Python程序

📅  最后修改于: 2020-09-20 16:33:23             🧑  作者: Mango

在此示例中,您将学习使用两种不同的方法查找两个数字的GCD: 函数和循环,以及欧几里得算法

两个数字的最高公共因子(HCF)或最大公共除数(GCD)是将两个给定数字完美除的最大正整数。例如,HCF为12和14为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

在此,将存储在变量num1num2中的两个整数传递给compute_hcf() 函数。该函数计算HCF这两个数字并将其返回。

在函数,我们首先确定两个数字中的较小者,因为HCF只能小于或等于最小数字。然后,我们使用for循环从1到该数字。

在每次迭代中,我们检查我们的数字是否完美地划分了两个输入数字。如果是这样,我们将数字存储为HCF。在循环结束时,我们将得到最大的数字,该数字完美地将两个数字相除。

上述方法易于理解和实施,但是效率不高。查找HCF的一种更有效的方法是欧几里得算法。

欧几里得算法

该算法基于以下事实:两个数字的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 ,其余的(x % y)放置在y 。当y变为零时, x具有HCF。