[恢]hdu 1019
2011-12-16 04:10:41
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1019
题意:求n个数字的最小公倍数。
mark:lcm(a,b,c) = lcm(a,lcm(b,c))。wa了一次,没注意lcm先除再乘,溢出了。
代码:
# include <stdio.h>
int gcd(int a, int b){return a%b ? gcd(b,a%b) : b;}
int lcm(int a, int b){return a/gcd(a,b)*b;}
int gao(int n)
{
int last = 1, cur ;
int i ;
for (i = 0 ; i < n ; i++)
{
scanf ("%d", &cur) ;
last = lcm(last, cur) ;
}
return last ;
}
int main ()
{
int T, n, ans ;
scanf ("%d", &T) ;
while (T--)
{
scanf ("%d", &n) ;
ans = gao(n) ;
printf ("%d\n", ans) ;
}
return 0 ;
}