#include<bits/stdc++.h>#definescscanf#defineprprintf#definelllonglongusingnamespace std;constint maxn =1e5+100;
ll gcd(ll a, ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a, ll b){return a*b/gcd(a,b);}
ll a[maxn];
ll pre[maxn];voidsolve(){int n;sc("%d",&n);for(int i =1; i <= n; i++){sc("%lld",&a[i]);}//求出后缀gcd之后 for(int i = n; i >=1; i--){
pre[i]=gcd(a[i],pre[i +1]);}//那么我获取每一个可以按照公式进行求解
ll res =0;for(int i =1; i <= n; i++){
res =gcd(res,lcm(a[i],pre[i +1]));}pr("%lld\n",res);}intmain(){// freopen("2.in","r",stdin);int t;// sc("%d",&t);
t =1;while(t--)solve();}