HDU_2028——求多个数的最小公倍数

Problem Description
求n个数的最小公倍数。
 

 

Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
 

 

Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。
 

 

Sample Input
2 4 6 3 2 5 7
 

 

Sample Output
12 70
 1 #include <cstdio>
 2 int gys(int a,int b)
 3 {
 4    if(b==0)
 5       return a;
 6    else
 7       return gys(b,a%b);
 8 }
 9 int lcm(int a,int b)
10 {
11    if(a>b)  return b*(a/gys(a,b));
12    else     return b*(a/gys(b,a));
13 }
14 int main()
15 {
16    int n,a,b;
17    while(~scanf("%d",&n))
18       {
19          scanf("%d",&a);
20          for(int i=1;i<n;i++)
21             {
22                scanf("%d",&b);
23                a=lcm(a,b);
24             }
25          printf("%d\n",a);
26       }
27    return 0;   
28 }

 

posted @ 2013-06-18 18:04  瓶哥  Views(399)  Comments(0Edit  收藏  举报