import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time,queue,copy



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7

dd=[(-1,0),(0,1),(1,0),(0,-1)]

ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]



def LI(): return [int(x) for x in sys.stdin.readline().split()]

def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]

def I(): return int(sys.stdin.readline())

def LS(): return sys.stdin.readline().split()

def S(): return eval(input())



# GCD -- START --

def gcd(x,y):

  while y:

    x,y=y,x%y

  return x

# GCD --- END ---



# LCM -- START --

def lcm(x,y):

  return x*y//gcd(x,y)

# LCM --- END ---



def main():

  n=I()

  ans=I()



  for _ in range(n-1):

    ans=lcm(ans,I())



  return ans



# main()

print((main()))

import math,itertools,fractions,heapq,collections,bisect,sys,queue,copy



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7

dd=[(-1,0),(0,1),(1,0),(0,-1)]

ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]



def LI(): return [int(x) for x in sys.stdin.readline().split()]

def LF(): return [float(x) for x in sys.stdin.readline().split()]

def I(): return int(sys.stdin.readline())

def F(): return float(sys.stdin.readline())

def LS(): return sys.stdin.readline().split()

def S(): return eval(input())



# GCD -- START --

def gcd(x,y):

  while y:

    x,y=y,x%y

  return x

# GCD --- END ---



# LCM -- START --

def lcm(x,y):

  return x*y//gcd(x,y)

# LCM --- END ---



def main():

  n=I()

  ans=1

  for _ in range(n):

    ans=lcm(ans,I())



  return ans



# main()

print((main()))

import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time, queue, copy

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]


def LI():
    return [int(x) for x in sys.stdin.readline().split()]


def LI_():
    return [int(x) - 1 for x in sys.stdin.readline().split()]


def I():
    return int(sys.stdin.readline())


def LS():
    return sys.stdin.readline().split()


def S():
    return eval(input())


# GCD -- START --
def gcd(x, y):
    while y:
        x, y = y, x % y
    return x


# GCD --- END ---
# LCM -- START --
def lcm(x, y):
    return x * y // gcd(x, y)


# LCM --- END ---
def main():
    n = I()
    ans = I()
    for _ in range(n - 1):
        ans = lcm(ans, I())
    return ans


# main()
print((main()))

import math, itertools, fractions, heapq, collections, bisect, sys, queue, copy

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]


def LI():
    return [int(x) for x in sys.stdin.readline().split()]


def LF():
    return [float(x) for x in sys.stdin.readline().split()]


def I():
    return int(sys.stdin.readline())


def F():
    return float(sys.stdin.readline())


def LS():
    return sys.stdin.readline().split()


def S():
    return eval(input())


# GCD -- START --
def gcd(x, y):
    while y:
        x, y = y, x % y
    return x


# GCD --- END ---
# LCM -- START --
def lcm(x, y):
    return x * y // gcd(x, y)


# LCM --- END ---
def main():
    n = I()
    ans = 1
    for _ in range(n):
        ans = lcm(ans, I())
    return ans


# main()
print((main()))

-import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time, queue, copy +import math, itertools, fractions, heapq, collections, bisect, sys, queue, copy -def LI_(): -    return [int(x) - 1 for x in sys.stdin.readline().split()] +def LF(): +    return [float(x) for x in sys.stdin.readline().split()] + + +def F(): +    return float(sys.stdin.readline()) -    ans = I() -    for _ in range(n - 1): +    ans = 1 +    for _ in range(n):