蓝桥杯 算法训练 5-1最小公倍数(Python3实现)

问题描述
  编写一函数lcm,求两个正整数的最小公倍数。
样例输入
一个满足题目要求的输入范例。
例:
3 5
样例输出
与上面的样例输入对应的输出。
例:
在这里插入图片描述
数据规模和约定
  输入数据中每一个数的范围。
  例:两个数都小于65536。

Python3 实现:

while True:
    try:
        def lcm(m, n):
            temp = max(m, n)
            result = 0
            for i in range(temp, m* n + 1):
                if i % m == 0 and i % n == 0:
                    result = i
                    break
            return result

        n = list(map(int, input().split()))
        print(lcm(n[0], n[1]))
    except:
        break

两个整数的最小公倍数最大不过是它们两个相乘,一个一个试总能试出来的。

还有更简单的方法,两个数的最小公倍数就是这两个数字相乘除以这两个数字的最大公约数,而最大公约数可以用math.gcd函数直接求出来,如下:

import math
def lcm(a,b):
    return a*b//math.gcd(a,b)
a,b = map(int,input().split())
print(lcm(a,b))

你可能感兴趣的:(蓝桥杯,python)