用循环结构输入两个整数m和n,输出他们的最大公约数和最小公倍数
时间: 2024-11-07 13:13:06 浏览: 27
c代码-输入两个正整数m和n,求其最大公约数和最小公倍数。
在C语言中,我们可以使用欧几里得算法(Euclidean algorithm)来计算两个整数的最大公约数(Greatest Common Divisor, GCD),然后根据公式 GCD(a, b) * LCM(a, b) = a * b 来计算最小公倍数(Least Common Multiple, LCM)。这里是一个简单的示例程序:
```c
#include <stdio.h>
// 函数声明:返回两数的最大公约数
int gcd(int m, int n);
int main() {
int m, n;
// 循环输入两个整数
printf("Enter two integers (m and n): ");
scanf("%d %d", &m, &n);
// 计算最大公约数
int result_gcd = gcd(m, n);
// 计算最小公倍数
int lcm = (m * n) / result_gcd; // 注意防止除以零的情况
printf("The greatest common divisor (GCD) is: %d\n", result_gcd);
printf("The least common multiple (LCM) is: %d\n", lcm);
return 0;
}
// 欧几里得算法实现 GCD
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b); // 递归调用
}
```
在这个程序中,`gcd` 函数使用了递归的方式来实现欧几里得算法。运行这个程序后,你可以按照提示输入两个整数,然后程序会计算并输出它们的最大公约数和最小公倍数。
如果你对这个代码有疑问,或者想了解算法背后的原理,请随时告诉我。
阅读全文