Write a function that calculates the *least common multiple* of its arguments; each argument is assumed to be a non-negative integer. In the case that there are no arguments (or the provided array in compiled languages is empty), return `1`.
~~~if:objc
NOTE: The first (and only named) argument of the function `n` specifies the number of arguments in the variable-argument list. Do **not** take `n` into account when computing the LCM of the numbers.
~~~
from functools import reduce
def lcm(*args):
    return reduce(lcms, args) if args else 1

def gcd(a,b):
    """Euclidean Algorithm"""
    return b if a == 0 else gcd(b % a, a)
    
def lcms(a, b):
    return (a*b) // gcd(a,b)
from functools import reduce
def lcm(*args):
    return reduce(lcms, args) if args else 1

def gcd(a,b):
    """Euclidean Algorithm"""
    return b if a == 0 else gcd(b % a, a)
    
def lcms(a, b):
    return (a*b) // gcd(a,b)