最小公倍数
新手求教c语言求最小公倍数算法,只要算法!!
[解决办法]
选择一个数,从1到另一个数穷举倍数,找到第一个可以整除另一个数的值,返回。代码如下:
int foo(int x, int y)
{
for (int i = 1; i < y; i++)
if (x * i % y == 0) return x * i;
return x * y;
}
[解决办法]
已知m,n均为正整数,试用C语言写出求m与n的最小公倍数的算法,算法的步骤为(该算法的好处是只需用一次乘法):
(1) 计算m*n的积,送临时变量r。
(2) 若m等于n,则输出最小公倍数r/m,算法结束。
(3) 若m大于n,计算m-n,结果送m,否则,计算n-m,结果送n。(即max = max - min)
(4) 转到(2)或者(3)。
在已知最大公约数的前提下,另一个方法:最小公倍数=m*n/最大公约数
[解决办法]
已知m,n
1. 用辗转相除法求最大公约数
2. 最小公倍数 = m*n/最大公约数
[解决办法]
#include<stdio.h>
int lcm(int,int);
int main(){
int a,b,l;
printf("Enter any two positive integers ");
scanf("%d%d",&a,&b);
if(a>b)
l = lcm(a,b);
else
l = lcm(b,a);
printf("LCM of two integers is %d",l);
return 0;
}
int lcm(int a,int b){
int temp = a;
while(1){
if(temp % b == 0 && temp % a == 0)
break;
temp++;
}
return temp;
}
}