题目描述:
给你两个正整数a和b, 输出它们的最小公倍数。
例如:a = 3, b = 5
则输出:15
这题可以运用循环,从a,b中较大的开始找,找到a*b,如果有一个数i能够同时整除a和b,那么这个数就是最小公倍数,下面为方法参考代码
def solve_it():
for i in range(max(a,b),a*b+1):
if i%a==0 and i%b==0:
return i
break
print(solve_it())
但是这样效率是有点低的,我们可以记住一个结论:最小公倍数等于两个数之积除于最大公约数,数学表达式为 a*b/最大公约数,最大公约数的求法也有很多求法,可以参考我上一篇博客,这里直接贴代码
def maxyue(a, b):
a,b=max(a,b),min(a,b)
while(b!=0):
temp = a % b
a = b
b = temp
return a
print(a*b//maxyue(a,b))