代码
#include <iostream>
#include <algorithm>
using namespace std;
long long int gcd(long long int n, long long int m){
if(n<m){
swap(n, m);
}
while(n%m){
long long int r = n%m;
n = m;
m = r;
}
return m;
}
int main() {
int n;
while(cin>>n){
long long int a[n];
for(int i=0; i<n; i++){
cin>>a[i];
}
sort(a, a+n);
for(int i=0; i<n-1; i++){
long long int t = gcd(a[i], a[i+1]);
a[i+1] = a[i]*a[i+1]/t;
}
cout<<a[n-1]<<endl;
}
return 0;
}
注解
1、求最大公约数的辗转相除法gcd
2、最小公倍数=二数乘积 除以 最大公约数
3、n个数的最小公倍数的求法,就是任取2个求出他们的最小公倍数,用结果当做一个数,再与其他数一起连乘。