hdu-2028
求多个数的最小公倍数,gcd方法
输入:
多个数
输出:
这些数的最小公倍数
思路:所有的数据相乘,再除以所有数据的最大公因数
代码:
#include <iostream>
using namespace std;
int gcd(int x,int y) //gcd求最大公因数(个人认为像迭代+递归)
{
int m;
if (y==0) m=x;
else m=gcd(y,x%y);
return m;
}
int main()
{
int n;
while(cin>>n&&n!=0)
{
int a[100001];
long long sum=1;
for(int i=1;i<=n;i++)
cin>>a[i];
sum=a[1]*a[2]/gcd(a[1],a[2]); //暴力相乘再除最大公因数,注意sum别爆了-.-
for(int i=3;i<=n;i++)
sum=a[i]*sum/gcd(sum,a[i]);
cout<<sum<<endl;
}
return 0;
}