在 Python 中实现最大公约数操作
最大公约数 (GCD),也称为两个值的最高公因数 (HCF),是将两个给定数相除的最大数。最大公约数也可以用 Python 计算和实现。
本教程演示了在 Python 中实现最大公约数的代码的不同方法。
在 Python 中使用递归实现 GCD 的代码
在函数定义块中调用自身的函数称为递归。递归可用于创建计算两个数字的 GCD
的函数。这个过程对于减少代码长度非常有用,并且可以方便地减少不必要的函数调用。
下面的代码使用递归来实现 Python 中最大公约数的代码。
def gcd1(x, y):
if(y==0):
return x
else:
return gcd1(y,x%y)
x = 72
b= 60
print ("The gcd is : ",end="")
print (gcd1(72,60))
上面的程序给出了以下结果。
输出:
The gcd is : 12
在 Python 中使用 for
循环实现最大公约数的代码
一个简单的 for
循环和 if-else
语句可以帮助实现与本文中的其他方法相同的任务。
以下代码使用 for
循环来实现 Python 中最大公约数的代码。
def gcd2(a, b):
if a > b:
small = b
else:
small = a
for i in range(1, small+1):
if((a % i == 0) and (b % i == 0)):
gcd = i
return gcd
a = 72
b = 60
print ("The gcd is : ",end="")
print (gcd2(72,60))
上面的代码给出了以下结果。
输出:
The gcd is : 12
在 Python 中使用欧几里德算法实现最大公约数的代码
欧几里得算法是另一种能够快速计算两个数的最大公约数的技术。
欧几里得算法是根据两个主要事实来定义的。
- 如果较小的数字减去较大的数字,则 GCD 没有变化。因此,我们最终找到了两个数字中较大值的继续减法的 GCD。
- 如果我们除以较小的数,而不是在此处进行减法,算法会在遇到余数
0
时自动停止。
下面的程序使用欧几里得算法来实现 Python 中最大公约数的代码。
def gcd3(p, q):
while(q):
p, q = q, p % q
return p
p = 72
q = 60
print ("The gcd is : ",end="")
print (gcd3(72,60))
该代码提供了以下结果。
输出:
The gcd is : 12
在 Python 中使用 math.gcd()
函数计算最大公约数
现在,我们可以简单地使用预定义的 math.gcd()
函数来计算两个数字的 GCD,而不是创建用户定义的函数。math
模块需要导入到 Python 代码中才能使用 gcd()
函数。
以下代码使用 math.gcd()
函数来计算 Python 中的最大公约数。
import math
a = math.gcd(72,60)
print(a)
上面的程序提供了以下结果。
输出:
12
在 Python 3.5 及更高版本中,gcd
函数包含在 math
模块中。在早期的 Python 版本中,gcd
函数包含在 fractions
模块中。但是,从 Python 3.5 开始,它现在已被弃用。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。