我们先理清一下思路:最小公倍数可由原来两数的乘积再除以最大公约数得到。于是我们要先求最大公约数,再求解的过程中又有辗转相除法和更相减损法等方法,在这里我就用更相减损法求解了。
代码和我对代码的理解一并展现:
#include <stdio.h>
int main (void)
{
int a, b, m, n,i; //m,n,分别为a,b两个数的过度量;且m为最大公约数,i为最小公倍数
printf("请输入您要求的两位数:");
scanf("%d %d",&a,&b);
m=a;
n=b;
while (m!=n) //更相减损法
{
if (m>n)
{m=m-n;}
if (n>m)
{n=n-m;}
}
i=(a*b)/m; //用原来的a,b和最大公约数求解最小公倍数
printf("最大公约数为:%d\n最小公倍数为:%d\n",m,i);
return 0;
}