L.C.M C 中的两个数字
L.C.M of two numbers in C
所以,这是我计算 L.C.M (Least common multiple) without using G.C.D:
的代码
int lcm(int x, int y){
int max = 0, min = 0, ans = 0;
if(y >= x){
max = y;
min = x;
if(y % x == 0) return y;
}else {
max = x;
max = y;
if(x % y == 0) return x;
}
for(int i = 1; i <= max ; i++){
if( (max*i) % min == 0){
ans = max * i;
break;
}
}
return ans;
}
这里是 main
:
int main(){
int u, v;
printf("Input two numbers: ");
scanf("%d%d", &u, &v);
puts("");
printf("LCM(%d, %d): %d",u , v, lcm(u, v));
return 0;
}
它非常适用于 4 8
、7 21
和其他所有 其中第一个数字较小 的输入。一个例子:
It takes a lot of time to run if the value of first input is higher and does nothing
我做错了什么?
我正在使用 Dev-C++。
在lcm
函数里面的else
语句中,应该是min = y
。
那是我犯的错误。感谢 TotallyNoob 指出。
所以,这是我计算 L.C.M (Least common multiple) without using G.C.D:
的代码int lcm(int x, int y){
int max = 0, min = 0, ans = 0;
if(y >= x){
max = y;
min = x;
if(y % x == 0) return y;
}else {
max = x;
max = y;
if(x % y == 0) return x;
}
for(int i = 1; i <= max ; i++){
if( (max*i) % min == 0){
ans = max * i;
break;
}
}
return ans;
}
这里是 main
:
int main(){
int u, v;
printf("Input two numbers: ");
scanf("%d%d", &u, &v);
puts("");
printf("LCM(%d, %d): %d",u , v, lcm(u, v));
return 0;
}
它非常适用于 4 8
、7 21
和其他所有 其中第一个数字较小 的输入。一个例子:
It takes a lot of time to run if the value of first input is higher and does nothing
我做错了什么?
我正在使用 Dev-C++。
在lcm
函数里面的else
语句中,应该是min = y
。
那是我犯的错误。感谢 TotallyNoob 指出。