python最大公约数和最小公倍数

辗转相除法

最大公约数和最小公倍数的求解方法有很多种,但是我们普遍认为辗转相除法是最好的。辗转相除法的步骤如下

  • 比较两数,并使m>n;
  • 将m作被除数,n做除数,相除后余数为r;
  • 循环判断r,若r==0,则n为最大公约数,结束循环。若r !=0 ,执行m=n,n=r;

最大公约数

def gcd(x, y):
    m = max(x, y)
    n = min(x, y)
    while m%n:
        m, n = n, m%n
    return n

最小公倍数

def lcm(x, y):
    m = max(x, y)
    n = min(x, y)
    while m%n:
        m, n = n, m%n
    return x*y//n

 python自带gcd函数

>>> import math
>>> print(math.gcd(10,15))
5
原文地址:https://www.cnblogs.com/marvin-wen/p/12290337.html