最小公倍数(C语言)
发布网友
发布时间:2022-05-19 03:38
我来回答
共2个回答
热心网友
时间:2024-03-03 22:38
说下我自己的思路吧,两个数肯定一个大的(MAX)一个小的(MIN),大数乘积范围,比如MAX * i,则i的范围是1~MIN,而MIN * j,则j的范围是1~MAX。
设置两个for循环,循环条件都是从1开始,如果MAX * i等于MIN * j,则这个数就是最小公倍数。
程序设计起来应该也不是很麻烦,不用找哪个数大哪个数小,直接for循环进行比较就行。循环条件是从1开始,决定了公倍数是最小的。
热心网友
时间:2024-03-03 22:39
楼上的算法很令我们开眼界。虽然没有什么夸张的理论,但的确可以解决问题。
通常也会先求最大公约数,然后用这两个数的乘积除以最大公约数。
求最大公约数的算法常用辗转相除法。
int a(int x,int y)
{
int temp;
temp=x%y;
if(temp==0)
{
return y;
}
else
{
return a(y,temp);
}
}