解题思路:利用while循环,每两个数求一次它们的最小公倍数。
求两个数的最小公倍数:两数乘积/两数的最大公因数
求两个数的最大公因数:辗转相除法(欧几里得算法)
代码实现:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a,n;
int gcd(int x,int y) //欧几里得算法求最大公因数
{
int temp;
while(y>0)
{
temp=x%y;
x=y;
y=temp;
}
return x;
}
signed main() {
cin>>n; //表示有n个整数
int res=1;
while(n--)
{
cin>>a;
res=res*a/gcd(res,a); //求最小公倍数
}
cout<<res<<endl;
return 0;
}