题解 | #求最小公倍数#

求最小公倍数

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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务