25 最小公倍數
作者: xxx時間限制: 1S章節: 循環
問題描述 :
給定兩個正整數,計算這兩個數的最小公倍數
輸入說明 :
輸入包含T組測試數據,每組只有一行,包括兩個不大於1000的正整數.
輸出說明 :
對於每個測試用例,給出這兩個數的最小公倍數,每個實例輸出一行。
輸入範例 :
3
200 50
9 11
18 21輸出範例 :
200
99
126
筆記
兩個數的最小公倍數(LCM) = 兩數的乘積/最大公約(因)數
兩數的最大公約數有多種解法,常用且高效的是輾轉相除法,注意在進行輾轉相除之前,要調整兩數的順序,大數在前,小數在後。
代碼
#include<stdio.h>
int gcd(int a,int b){
if(b==0)
return a;
else return gcd(b,a%b);
}
int main(){
int T;
scanf("%d",&T);
int i;
for(i=0;i<T;i++){
int a,b;
int t;
scanf("%d %d",&a,&b);
if(a<b){
t = a;
a = b;
b = t;
}
printf("%d\n",a*b/gcd(a,b));
}
return 0;
}