求n个数的最小公倍数。
Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
Sample
Inputcopy | Outputcopy |
|
|
#include <stdio.h>
#define LL long long int
LL gcd(LL a,LL b)
{
if(b == 0) return a;
return gcd(b,a%b);
}
LL lcm(LL a,LL b)
{
return a*b/gcd(a,b);
}
int main()
{
int n;
LL sum,num;
while(scanf("%d",&n) != EOF)
{
n--;
scanf("%lld",&num);
sum = num;
while(n--)
{
scanf("%lld",&num);
sum = lcm(sum,num);
}
printf("%lld\n",sum);
}
return 0;
}