1. 原理介绍
根据数学原理
两个整数的最大公因数=两个整数之间比较小的那个数字与两者相处所得余数的最大公因数。
两个整数的最小公倍数=两个数的乘积除以他们的最大公因数。
2.算法实现
那么根据原理,其实就是除数与余数的一个车轮战,这也是我们辗转相除法的原理,并且只要求出最大公因数,最小公倍数也就解决了。
3. 代码实现
#include <stdio.h>
int max_in(int a,int b)//默认a>b
{
if(a%b==0) return b;
else {a=a%b;max_in(b,a);}
}
int main()
{
int a,b,t;
scanf("%d %d",&a,&b);//注意输入格式
if(b>a) {t=b;b=a;a=t;};//比较一下大小,确保a是最大的
printf("最大公因数是%d:\n",max_in(a,b));
printf("最小公倍数是%d:\n",(a*b)/max_in(a,b));
return 0;
}