在C中找到两个整数的最小公倍数(LCM)

Finding the Least Common Multiple(LCM) of two integer in C

我正在尝试使用以下代码在 C 中查找两个整数的 LCM。我不知道为什么代码会显示两个整数的最大数量而不是它们的 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) 来查找 max 的第一个可被 min 整除的倍数,并在找到时退出循环。