hdu 1019 Least Common Multiple

求最小公倍数

先说两个说最小公倍数,a和b的最小公倍数可以用a和b的最大公约数来求,lcm(a,b)=a/gcd(a,b)*b,这里要注意一点是先除后乘防止溢出

推广到多个数也是一样的

  题目传送门

 1 #include<stdio.h>
 2 int gcd(int a, int b)
 3 {
 4     return b==0?a:gcd(b,a%b);
 5 }
 6 int main()
 7 {
 8     int m,n,a,b,gcm;
 9     scanf("%d", &m);
10     while(m--)
11     {
12         scanf("%d", &n);
13         a=b=1;
14         while(n--)
15         {
16             scanf("%d",&a);
17             gcm = (int)((float)a/gcd(a,b)*b);
18             b = gcm;
19         }
20         printf("%d\n",b);
21     }
22     return 0;
23 }

 

posted @ 2013-05-10 08:29  飞向梦  阅读(142)  评论(0编辑  收藏  举报