#pragma comment(linker, "/STACK:102400000,102400000")

#include <cstdio>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <map>
#include <stack>
#include <set>
#include <list>
#include <bitset>
#include <assert.h>
#include <numeric>
#include <sstream>
#include <iomanip>
#include <limits>
//#include <xfunctional>   // greater less
//#include <unordered_map>
//#include <unordered_set>

using namespace std; 

namespace Dup4
{
	typedef long long ll;
	typedef long double ld;
	typedef long double ld;
	typedef unsigned long long ull;
	typedef pair <int, int> pii;
	typedef pair <ll, ll> pll;
	typedef pair <ll, int> pli;
	typedef vector <int> vi;
	typedef vector <ll> vll;
	typedef vector < vi > vvi;

	#define fi first
	#define se second
	#define pb push_back
	#define gc getchar
	#define pc putchar
	#define p32 pc(' ')
	#define p10 pc('\n')
	#define L(on) ((on)<<1)
	#define R(on) (L(on) | 1)
	//#define gcd(a,b) __gcd(a,b)
	#define lowbit(x) ((x)&(-x))
	#define mkp(a, b) make_pair(a, b)
	#define all(x) x.begin(), x.end()
	#define rall(x) x.rbegin(), x.rend()
	#define CLR(a, b) memset(a, (b), sizeof(a));
	#define random(a,b) ((a)+rand()%((b)-(a)+1))
	#define syn_close ios::sync_with_stdio(false); cin.tie(0);

	//__builtin_popcount(i) // 返回一个数中二进制形式中1的个数

	inline int read()
	{
		int x = 0, f = 1; char c = gc();
		for (; !isdigit(c); c = gc()) f ^= (c == '-');
		for (; isdigit(c); c = gc()) x = x * 10 + (c - '0');
		return x * (f ? 1 : -1);
	}
	
	template <typename T>
	inline void read(T &x)
	{
		x = 0; int f = 1; char c = gc();
		for (; !isdigit(c); c = gc()) f ^= (c == '-');
		for (; isdigit(c); c = gc()) x = x * 10 + (c - '0');
		x *= f ? 1 : -1;
	}

	template <typename T>
	inline void write(T x)
	{
		if (!x) { pc(48); return; }
		if (x < 0) x = -x, pc('-');
		int bit[20], i, p = 0;
		for (; x; x /= 10) bit[++p] = x % 10;
		for (i = p; i; --i) pc(bit[i] + 48);
	}

	//仅限于正整数读入

	inline char nc()
	{
		static char buf[100000], *i = buf, *j = buf;
		return i == j && (j = (i = buf) + fread(buf, 1, 100000, stdin), i == j) ? EOF : *i++;
	}

	template <typename T>
	inline void _read(T &sum)
	{
		char ch = nc(); sum = 0;
		while (!(ch >= '0' && ch <= '9')) ch = nc();
		while (ch >= '0' && ch <= '9') sum = sum * 10 + ch - 48, ch = nc();
	}

	template <typename T>
	inline T gcd(T a, T b)
	{
		while (b ^= a ^= b ^= a %= b);
		return a;
	}

	#ifdef LOCAL
		#define gets gets_s
		#define sp system("pause");
		#define bug puts("***bug***");
	#endif

	#ifdef ONLINE_JUDGE
		#define sp
		#define bug
	#endif

	const double PI = acos(-1.0);
	const double EI = exp(1.0);
	const double eps = 1e-8;

	const int INF = 0x3f3f3f3f;
	const ll INFLL = 0x3f3f3f3f3f3f3f3fll;
}

using namespace Dup4;

namespace FastIO
{
	// 只可读入 正整数，单字符
	#define BUF_SIZE 10000005
	bool IOerror = false;
	inline char NC()
	{
		static char buf[BUF_SIZE], *p1 = buf + BUF_SIZE, *pend = buf + BUF_SIZE;
		if (p1 == pend)
		{
			p1 = buf;
			pend = buf + fread(buf, 1, BUF_SIZE, stdin);
			if (pend == p1)
			{
				IOerror = true;
				return -1;
			}
		}
		return *p1++;
	}
	
	inline bool blank(char ch)
	{
		return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';
	}

	inline void __read(char &x)
	{
		char ch;
		while (blank(ch = NC()));
		if (IOerror)
			return;
		x = ch;
	}

	template <typename T>
	inline void __read(T &x)
	{
		char ch;
		while (blank(ch = NC()));
		if (IOerror)
			return;
		for (x = ch - '0'; isdigit(ch = NC()); x = x * 10 + ch - '0');
	}
	#undef BUF_SIZE
}

using namespace FastIO;

const int maxn = (int)1e2 + 100;
const int Maxn = (int)1e3 + 100;
const int MOD = (int)1e9 + 7;

int n;
ll arr[maxn];

bool Input()
{
	if (scanf("%d", &n) == EOF) return false;
	for (int i = 1; i <= n; i++)
		read(arr[i]);
	return true; 
}

void Solve()
{
	ll ans = arr[1];
	for (int i = 2; i <= n; i++)
	{
		ll tmp = gcd(ans, arr[i]);
		ans /= tmp;
		ans *= arr[i];
	}
	write(ans), p10;
}

int main()
{
	#ifdef LOCAL
		freopen("in.in", "r", stdin);
		//freopen("out.out", "w+", stdout);
	#endif

		while (Input())
			Solve();

	#ifdef LOCAL
		fclose(stdin);
		//fclose(stdout);
	#endif

		return 0;
}

Measured memory_bytes: 256