题解 | #求最小公倍数#
求最小公倍数
https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3
a, b = map(int, input().split()) T = 1 for i in range(a+b,1,-1): if a%i==0 and b%i==0: T = T*i a = a//i b = b//i print(T*a*b)
按照我们在数学上计算最小公约数的方法来,从a+b开始,到2,找到这个过程中能够同时整除a和b的所有数,并且用该除数更新a,b。直到a,b不能被比2大的数整除为止。最后乘数*a*b即为最小公约数。
从实际的例子来看,找出24和36的最小公约数,从大到小,第一个约数是12,因此T=12, a = 2, b = 3。a和b不能被大于2的数同时整除,因此最小公约数是12*a*b