📜  python最大公约数 - Python(1)

📅  最后修改于: 2023-12-03 15:04:39.908000             🧑  作者: Mango

Python最大公约数

在数学中,最大公约数(Greatest Common Divisor,简称GCD)指两个或多个整数共有约数中最大的一个。例如,12和18的最大公约数是6,记作GCD(12,18)=6。

在Python中,求两个数的最大公约数可以使用辗转相除法(又称欧几里得算法)。

代码实现
def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)
示例
assert gcd(12, 18) == 6
assert gcd(4,6) == 2
解析

以上代码中的gcd函数实现了求两个数的最大公约数。当输入参数b为0时,则a为最大公约数;否则继续递归调用gcd函数,其中目标参数a变为原参数b,目标参数b变为原参数a%b,即a除以b的余数。

性能分析

对于两个数进行求最大公约数的时候,辗转相除法的时间复杂度大致为O(log(min(a,b))),其中a、b分别为两个数,最终的时间复杂度与两个数的大小关系有关,但由于O符号的常数为1,因此可以认为时间复杂度近似于log级别的。

结语

以上就是Python中求两个数最大公约数的实现方法,辗转相除法算法简单易理解,并且在时间复杂度上表现较好,适合用于解决较小规模的问题。