杭電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個数の最下公倍数である.
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;
}