[恢]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 ;
}



posted @ 2012-01-06 16:55  Seraph2012  阅读(116)  评论(0编辑  收藏  举报