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;
}