这里将介绍求两个正整数的最小公倍数(Least Common Multiple,LCM)的方法。提供两种主要思路,一种是直接根据最小公倍数的定义设计算法,一种是由最大公约数计算得出。下面来介绍这两种方法。
定义法
求解两个正整数的最小公倍数的第一种思路,根据定义设计算法,最小公倍数的本质是一个最小的能同时被两整数整除的自然数。我们先比较两数大小,从较大数开始向上递增,直到找到那个最小公倍数。
代码如下:
#include
int main()
{
int i=0;
int m,n,temp;
printf("请输入两个正整数:");
scanf("%d %d",&m,&n);
if( m
{
temp=n;
n=m;
m=temp;
}
for(i=m;i>0;i++) //从较大数开始寻找符合条件的最小公倍数
{
if( i%m==0&&i%n==0 )
{
printf("%d和%d的最小公倍数是%d",m,n,i);
break;
}
}
return 0;
}
辅助法
求最小公倍数也可以借助最大公约数辅助计算,公式为最小公倍数=两数的乘积/最大公约(因)数。解题时避免将两个问题混淆。
连续整除检测法