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
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 }