d693
輸入說明 :
每組測試資料兩行
第一行有一整數 N ( 2 ≤ N ≤ 10 )
第二行包含 N 個正整數 ( 每個數 ≤ 100 )
當 N 為 0 時請結束程式
輸出說明 :
每組測試資料輸出一行
請輸出 N 個正整數的最小公倍數
答案保證小於 231-1
最小公倍數就是兩數相乘,在除以最大公因數
這題比較重要的地方是for迴圈裡面,要先除以gcd,不然會overflow
#include<stdio.h>
int gcd(int a, int b)
{
int temp;
while(a%b)
{
temp = a%b;
a = b;
b = temp;
}
return b;
}
int main()
{
int n;
int i;
while(scanf("%d",&n)&&n)
{
int ans = 1;
int temp;
for(i=0;i<n;i++)
{
scanf("%d",&temp);
ans = ans/gcd(temp,ans)*temp;
}
printf("%d\n",ans);
}
}