杭電oj Lowest Common Multiple Plus

3226 ワード

Problem Description
n個数の最小公倍数を求める.
 
 
Input
入力には複数のテストインスタンスが含まれ、各テストインスタンスの開始は正の整数nであり、次いでnの正の整数である.
 
 
Output
各テスト・データのセットに対して最小公倍数を出力し、各テスト・インスタンスの出力は1行を占めます.最後の出力は32ビットの整数だと仮定できます.
 
 
Sample Input
2 4 6 3 2 5 7
 
 
Sample Output
12 70
 
2つの数の最大公約数と最小公倍数の積は、元の2つの数の積に等しい.
ここではN個の数を求める最小公倍数であり,前の2つの結果と後の2つで求めるだけである.このように配列の最後の項がN個数の最下公倍数である.
#include 
#include 

int main()
{
    int gcd(int a,int b);
    int a[100];
    int i,n;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i)
        {
            scanf("%d",&a[i]);
            if(i!=0)
            {
                a[i] = a[i-1]/gcd(a[i-1],a[i])*a[i];// “ ” 
            }
        }
        printf("%d
",a[n-1]); } return 0; } int gcd(int a,int b)// { int c; while(b) { c = a; a = b; b = c%b; } return a; }