19、从键盘输入两个数字n,m,求解n,m的最小公倍数

2023-01-07,,,,

/*
键盘输入两个数字n,m,求解n,m的最小公倍数
*/ #include <stdio.h>
#include <stdlib.h> void getLowsetComMul(int num1,int num2)//m,n乘积除以最大公约数即为最小公倍数
{
int maxComMul = num1 * num2;
int remain = 1;
while(0 != remain)
{
/*假设用f(x,y)表示x,y的最大公约数,取k=x/y,b=x%y,
则x=ky+b,如果一个数能够同时整除x和y,则必能同时整除b和y;而能够同时整除b和y的数也必能同时整除x和y,
即x和y的公约数与b和y的公约数是相同的,其最大公约数也是相同的,则有f(x,y)=f(y,x%y)(y>0),
如此便可把原问题转化为求两个更小数的最大公约数,直到其中一个数为0,
剩下的另外一个数就是两者最大的公约数。*/
remain = num1 % num2;
num1 = num2;
num2 = remain;
}
printf("%d\n",maxComMul / num1);
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
while(0 < n && 0 < m)//m,n有一个为非正数时结束
{
//if()
getLowsetComMul(n,m);
scanf("%d%d",&n,&m);
}
return 0;
}

19、从键盘输入两个数字n,m,求解n,m的最小公倍数的相关教程结束。

《19、从键盘输入两个数字n,m,求解n,m的最小公倍数.doc》

下载本文的Word格式文档,以方便收藏与打印。