辗转相除法求最大公约数gcd和最小公倍数lcm


以下是具体算法实现(最大公约数gcd)

m,n=map(int,input().split())#输入两个正整数
while n!=0:
    t=m%n    #t是一个中间变量,暂时储存值
    m=n
    n=t
print(m)

最小公倍数(Lcm)的算法可以借助最大公约数来实现
因为

m,n=map(int,input().split())
a,b=m,n  #m,n的值会发生变化,提前需要先储存好
while n!=0:
    t=m%n
    m=n
    n=t
print(a*b//m)

辗转相除法是很实用的一种方法,在求最大公约数和最小公倍数的时候相当有用,简单易行。

你可能感兴趣的:(辗转相除法求最大公约数gcd和最小公倍数lcm)