小乐乐与欧几里得

141 阅读1分钟
描述
小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数,但是他竟然不会求两个正整数的最大公约数与最小公倍数之和,请你帮助他解决这个问题。

输入描述:
每组输入包含两个正整数n和m。(1 ≤ n ≤ 1091 ≤ m ≤ 109)

输出描述:
对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和。

image.png

def GCD(n,m):
    if m==0:
        return n
    return GCD(m, n%m)
def LCM(n,m):
    return n*m//GCD(n, m)   # 一定会整除

while True:
    try:
        n,m=list(map(int,input().split(" ")))
        print(GCD(n, m)+LCM(n, m))
    except:
        break