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

图片来源于搜狗百科在这里插入图片描述
以下是具体算法实现(最大公约数gcd)

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

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

g c d l c m = m n gcd * lcm =m * n

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)

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

猜你喜欢

转载自blog.csdn.net/weixin_46530492/article/details/105632849
今日推荐