最大公约数和最小公倍数while语句解答
时间: 2024-11-22 13:40:07 浏览: 15
在C语言中,我们可以使用while循环来计算两个整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)。这里是一个简单的示例,我们将使用欧几里得算法(Euclidean algorithm)来找到GCD,然后利用公式`LCM = |a * b| / GCD(a, b)`来计算LCM。
首先,我们需要定义一个辅助函数来执行GCD的计算:
```c
// 辅助函数,计算两数的最大公约数
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
```
接下来,我们可以在主函数中调用这个函数并计算LCM:
```c
#include <stdio.h>
int main() {
int num1, num2, lcm;
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
// 计算最大公约数
int gcd_result = gcd(num1, num2);
// 计算最小公倍数
lcm = abs(num1 * num2) / gcd_result; // 使用绝对值避免负数影响
printf("最大公约数(GCD): %d\n", gcd_result);
printf("最小公倍数(LCM): %d\n", lcm);
return 0;
}
```
阅读全文