from functools import reduce
def gcd(a, b):
    """Return greatest common divisor using Euclid's Algorithm."""
while b:
    a, b = b, a % b
return a

def lcm(a, b):
    """Return lowest common multiple."""
return a * b // gcd(a, b)

def lcmm(*args):
    """Return lcm of args."""
return reduce(lcm, args)

def lcm_seq(seq):
    """Return lcm of sequence."""
return reduce(lcm, seq)
solution = lcm_seq(range(1, 21))
print('lcm_seq():', solution)
Project Euler 5 in Python - How can I optimize my solution?