要求两个整数m、n的最小公倍数,
从m、n中的最大数开始,不失一般性,假设为x
试探x,如果能同时被m、n整除,则x就是最大公约数,否则 ++x,继续试探
代码如下:
#include <stdio.h>
int max(int x,int y)
{
if(x>=y)
{
return x;
}
return y;
}
int lcm(int m,int n,int x)
{
if(x%m==0 && x%n==0)
{
return x;
}
return lcm(m,n,++x);
}
int main()
{
printf("%d\n",lcm(18,12,max(18,12)));
return 0;
}