题解 | #求最小公倍数#
求最小公倍数
https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3
## 首先定义一个求最大公约数的函数gcd(),用的是辗转相除法,写成递归函数,
# 辗转相除法成立的原因是 如果一个数x能够整除两个数a,b, 那么这个数一定能整除a,b间的较大数除以较小数得到的余数y,
如果听不懂,你想一下,两个数总会存在公约数,最小为1,现在以每一份为公约数的量将这两个数等分成若干份,从较大的份数中扣除掉较小的份数的数倍,剩下的若干份每一份仍然是公约数的量,这个剩下的若干份就是余数,它依然是公约数的倍数,然后将较小数作为被除数,将余数作为除数,就这么一直换位置除下去,直到余数为零了,那么这时候的除数就是最大的公约数,就是一开始分数字的时候那个每一份的最大量,没看明白重读一下....
### 然后定义一个求最小公倍数的函数,原理是最小公倍数等于两数乘积除以两数最大公约数
def gcd(x, y): if min(x,y) == 0: return max(x,y) return gcd(min(x,y), max(x,y)%min(x,y)) def lcm(x, y): a = gcd(x, y) return int(x*y/a) a, b = list(map(int,input().split())) print(lcm(a, b))