hdoj-2028-Lowest Common Multiple Plus

1838 ワード

Descriptionはn個の数の最小公倍数を求める.
Input入力には複数のテストインスタンスが含まれており、各テストインスタンスの最初は正の整数n、次いでnの正の整数である.
Outputは、テストデータのセットごとに出力される最小公倍数であり、各テストインスタンスの出力は1行を占める.最後の出力は32ビットの整数だと仮定できます.
Sample Input
2 4 6 3 2 5 7
Sample Output
12 70はgcdの応用です.一度WAしたのですが、直接乗って爆intしたので
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int a,int b)
{
    if(b==0) return a;
    return gcd(b,a%b);
}
int main()
{
    int n,a,b,c,i;
    while(~scanf("%d",&n))
    {
        scanf("%d",&a);
        for(i=1;i<=n-1;i++)
        {
            scanf("%d",&b);
            c=gcd(a,b);
            a=a/c*b;
        }
        printf("%d
"
,a); } return 0; }