思路:
求很多数的最小公倍数,可以先求前两个的最小公倍数,再用这个最小公倍数与下一个数求最小公倍数,以此类推~~~~
题中说数据很大,反正又不是难题,我索性把所有int换成了__int64,不喜勿喷呃。。。。。
#include<iostream>
using namespace std;
__int64 gcd(__int64 x,__int64 y)
{ return y?gcd(y,x%y):x;}
__int64 lem(__int64 x,__int64 y)
{ return x*y/gcd(x,y);}
void main()
{
__int64 n,a,b;
while(scanf("%I64d",&n)!=EOF)
{
scanf("%I64d",&a);
for(__int64 i=1;i<n;i++)
{
scanf("%I64d",&b);
a=lem(a,b);
}
printf("%I64d\n",a);
}
}