# 好像这个方法不够好,特别慢貌似,看有没有优化的方法
# k=int(input())
while True:
try:
# for _ in range(k):
a,b=map(int,input().split())
def gys(a,b):
if a<b:
a,b=b,a
if a%b==0:
return b
else:
a=a%b
return gys(b,a)
def gbs(a,b):
return (a*b)//gys(a,b)
print(gys(a,b)+gbs(a,b))
except:
break
```
· 本质还是求 最小公倍数和最大公约数问题
· 但求最小公倍数这些都是蕴含数***算技巧的,我之前自己写的暴力方法时间复杂度太高了
· 九章算术和欧几里得的辗转相除法 需要记住
· 辗转相除法,就是用两数的余数,然后再用小的再去取余,如果能整除,就返回被除数(就是最大公倍数),否则就一直变小取余
· 最大公倍数 是两数乘积除以 两数最大公约数