#include <iostream>
using namespace std;
long long gcd(int a,int b)
{
if(a%b==0)
return b;
return gcd(b,a%b);
}
int main()
{
long long n,a,b,min;
while(cin>>n)
{
cin>>a;
while(--n)
{
cin>>b;
min=a*b/gcd(a,b);
a=min;
}
cout<<min<<endl;
}
return 0;
}
tips:原理是,最小公倍数是两数的乘积再除以最大公因数。用辗转相除法按序找到两个数的最大公因数,再用两数的乘积除以它,得到最小公倍数,再用这两个数的最小公倍数与接下来的数求最小公倍数。
其中有wrong answer,原因是没有用long long。用的是long int,一定要用long long。