#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define NUM 100
long gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
int main(void){
int number[NUM],n;
while(cin>>n){
long cm = 1;
int t = 0;
while(n--){
cin>>number[t];
//cm*=number[t];
t++;
}
long temp = 1;
for(int i = 0;i < t;i++){
for(int j = 0;j < t,j!=i;j++){
temp = gcd(number[i],number[j]);
if(temp!=1){
number[i]=number[i]/temp;
//number[j]=number[j]/temp;
}
//cout<<temp<<number[i]<<number[j]<<i<<j<<endl;
}
}
for(int i = 0;i < t;i++){
cm*=number[i];
}
cout<<cm<<endl;
}
return 0;
}
最小公倍数需要先求最小公约数,一组数的最小公倍数我进行了数的修改,这破坏了原数据,是不应该的。