在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
整除的倍数,并在找到时退出循环。
我正在尝试使用以下代码在 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
整除的倍数,并在找到时退出循环。