In [1]:
import math
from functools import reduce
In [2]:
def gcd(*numbers):
return reduce(math.gcd, numbers)
In [3]:
def gcd_list(numbers):
return reduce(math.gcd, numbers)
In [4]:
print(gcd(27, 18, 9))
In [5]:
print(gcd(27, 18, 9, 3))
In [6]:
print(gcd([27, 18, 9, 3]))
In [7]:
print(gcd(*[27, 18, 9, 3]))
In [8]:
print(gcd_list([27, 18, 9, 3]))
In [9]:
# print(gcd_list(27, 18, 9, 3))
# TypeError: gcd_list() takes 1 positional argument but 4 were given
In [10]:
def lcm_base(x, y):
return (x * y) // math.gcd(x, y)
In [11]:
def lcm(*numbers):
return reduce(lcm_base, numbers, 1)
In [12]:
def lcm_list(numbers):
return reduce(lcm_base, numbers, 1)
In [13]:
print(lcm(27, 18, 9, 3))
In [14]:
print(lcm(27, 9, 3))
In [15]:
print(lcm(*[27, 9, 3]))
In [16]:
print(lcm_list([27, 9, 3]))