Python:求多个参数中的最小公倍数和最大公约数算法

在刷题的时候遇到这两个有意思的题目,求多个参数的最小公倍数和最大公约数。

在网上查了一些资料,最终整理出可行的算法答案

from math import gcd
from functools import reduce

 # greatest common divisor
def gcd(*numbers)
    return reduce(gcd, numbers)

# lowest common multiple
def lcm(*numbers): 
    def lcm(a, b):
        return (a * b) // gcd(a, b)
    return reduce(lcm, numbers, 1)

thanks Mr.endolith