求C中两个整数的最小公倍数



我正试图使用以下代码来查找C中两个整数的LCM。我做错什么了吗?

#include<stdio.h>
int main(){
int num1, num2;
printf("Input your number 1:");
scanf("%d", &num1);
printf("Input your number 2:");
scanf("%d", &num2);
//find max and main
int max = num1, min = num2;
if(num1 < num2){
max = num2;
min = num1;
}
int k = 1, LCM;
do{
LCM = max*k;
k++;
}while(LCM%min == 0);
printf("LCM of %d and %d is %d", num1 ,num2, LCM);
}

这是程序的输出:

Input your number 1:5
Input your number 2:3
LCM of 5 and 3 is 5
Process returned 0 (0x0)   execution time : 1.735 s
Press any key to continue.

while(LCM%min == 0)正在检查LCM是否可被min整除,如果是,循环将继续。

您应该使用while(LCM%min != 0)来查找可被min整除的max的第一个倍数,并在找到一个倍数时退出循环。

最新更新