题目:最大公约数和最小公倍数的计算
时间限制:1S
内存限制:10000Kb
问题描述:
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入说明:
输入两个正整数m和n。
输出说明:
输出m和n的最大公约数和最小公倍数。
输入样例:
8 12
输出样例:
4 24
代码
/*
* 最小公倍数 不能直接用 两数的乘积 / 最大公约数 ;
* 因为a*b可能会溢出 所以我们改成 a/最大公约数 *b;
*/
#include <stdio.h>
int func(int a,int b){
int c=a%b;
while(c!=0){
a=b;
b=c;
c=a%b;
}
return b;
}
int main(){
int a,b;
scanf("%d %d",&a,&b);
//得到最大公约数
int max=func(a,b);
//求最小公倍数
int min= a/max*b;
printf("%d %d",max,min);
return 0;
}