from functools import reduce

def gcd(a,b):

  while b!=0:

    a,b=b,a%b

  return a





#最小公倍数

def lcm(a,b):

  return b//gcd(a,b) * a





if __name__ == "__main__":

    n = int(eval(input()))

    lst = []

    for i in range(n):

        lst.append(int(eval(input())))

    print((reduce(lcm,lst)))
from functools import reduce



def gcd(a,b):

  while b!=0:

    a,b=b,a%b

  return a





#最小公倍数

def lcm(a,b):

  return a * b // gcd(a,b) 





if __name__ == "__main__":

    n = int(eval(input()))

    lst = []

    for i in range(n):

        lst.append(int(eval(input())))

    print((reduce(lcm,lst)))
from functools import reduce


def gcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a


# 最小公倍数
def lcm(a, b):
    return b // gcd(a, b) * a


if __name__ == "__main__":
    n = int(eval(input()))
    lst = []
    for i in range(n):
        lst.append(int(eval(input())))
    print((reduce(lcm, lst)))

from functools import reduce


def gcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a


# 最小公倍数
def lcm(a, b):
    return a * b // gcd(a, b)


if __name__ == "__main__":
    n = int(eval(input()))
    lst = []
    for i in range(n):
        lst.append(int(eval(input())))
    print((reduce(lcm, lst)))

-    return b // gcd(a, b) * a +    return a * b // gcd(a, b)