当前位置: 首页>>代码示例>>用法及示例精选>>正文


Python gcd()用法及代码示例

最高公因子(HCF)也称为gcd,可以使用math模块提供的单个函数在python中进行计算,因此可以使任务在许多情况下都更轻松。

天真的方法来计算gcd


    • 使用递归:
    # Python code to demonstrate naive 
    # method to compute gcd ( recursion ) 
      
    def hcfnaive(a,b):
        if(b==0):
            return a 
        else:
            return hcfnaive(b,a%b) 
      
    a = 60
    b= 48
      
    # prints 12 
    print ("The gcd of 60 and 48 is:",end="") 
    print (hcfnaive(60,48))

    输出:

    The gcd of 60 and 48 is:12
    

  1. 使用循环
    # Python code to demonstrate naive 
    # method to compute gcd ( Loops ) 
      
      
    def computeGCD(x, y):
      
        if x > y:
            small = y 
        else:
            small = x 
        for i in range(1, small+1):
            if((x % i == 0) and (y % i == 0)):
                gcd = i 
                  
        return gcd 
      
    a = 60
    b= 48
      
    # prints 12 
    print ("The gcd of 60 and 48 is:",end="") 
    print (computeGCD(60,48))

    输出:

    The gcd of 60 and 48 is:12
    
  2. 使用欧几里得算法
    # Python code to demonstrate naive 
    # method to compute gcd ( Euclidean algo ) 
      
      
    def computeGCD(x, y):
      
       while(y):
           x, y = y, x % y 
      
       return x 
      
    a = 60
    b= 48
      
    # prints 12 
    print ("The gcd of 60 and 48 is:",end="") 
    print (computeGCD(60,48))

    输出:

    The gcd of 60 and 48 is:12
    
  3. 使用Python的math.gcd()函数


    使用gcd()只需一行就可以计算相同的gcd。

    math.gcd( x, y )
    参数:
    x: Non-negative integer whose gcd has to be computed.
    y:Non-negative integer whose gcd has to be computed.
    返回值:
    This method will return an absolute/positive integer value after 
    calculating the GCD of given parameters x and y.
    Exceptions:
    When Both x and y are 0, function returns 0, If any number is a character ,
    Type error is raised.
    
    # Python code to demonstrate gcd() 
    # method to compute gcd 
      
    import math 
      
    # prints 12 
    print ("The gcd of 60 and 48 is:",end="") 
    print (math.gcd(60,48))

    输出:

    The gcd of 60 and 48 is:12
    

    常见例外


    此函数中的一些常见异常是:

  • 两个数字均为0,gcd为0
  • 如果只有一个数字不是数字,则会引发Type Error。
# Python code to demonstrate gcd() 
# method exceptions 
  
import math 
  
# prints 0 
print ("The gcd of 0 and 0 is:",end="") 
print (math.gcd(0,0)) 
  
# Produces error 
print ("The gcd of a and 13 is:",end="") 
print (math.gcd('a',13))

输出:

The gcd of 0 and 0 is:0
The gcd of a and 13 is:

运行时错误:

Traceback (most recent call last):
  File "/home/94493cdfb3c8509146254862d12bcc97.py", line 12, in 
    print (math.gcd('a',13))
TypeError:'str' object cannot be interpreted as an integer



相关用法

注:本文由纯净天空筛选整理自 gcd() in Python。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。