HDU_2028——複数の数の最小公倍数を求める

4234 ワード

Problem Description
n個数の最小公倍数を求める.
 
 
Input
入力には複数のテストインスタンスが含まれ、各テストインスタンスの開始は正の整数nであり、次いでnの正の整数である.
 
 
Output
各テスト・データのセットに対して最小公倍数を出力し、各テスト・インスタンスの出力は1行を占めます.最後の出力は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
",a); 26 } 27 return 0; 28 }