C语言使用while 循环求最大公约数和最小公倍数
时间: 2024-09-09 10:03:28 浏览: 74
在C语言中,使用`while`循环求解两个数的最大公约数(GCD)和最小公倍数(LCM)通常涉及以下步骤:
1. **求最大公约数**:通常使用辗转相除法(也称欧几里得算法),其基本思想是:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和较小数b的最大公约数。
2. **求最小公倍数**:两个数的乘积等于它们的最大公约数与最小公倍数的乘积。因此,最小公倍数可以通过两数的乘积除以它们的最大公约数来获得。
以下是一个简单的示例代码,展示了如何使用`while`循环在C语言中实现这一过程:
```c
#include <stdio.h>
int main() {
int a, b, t, gcd, lcm, product;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
t = a; // 初始化临时变量
gcd = a; // 最大公约数初始假设为a
while (b != 0) { // 当b不为0时,继续循环
t = a % b; // 余数赋值给t
a = b; // b赋值给a
b = t; // t赋值给b
}
gcd = a; // 循环结束时,a即为最大公约数
product = a * b; // 计算乘积
lcm = product / gcd; // 最小公倍数为乘积除以最大公约数
printf("最大公约数是:%d\n", gcd);
printf("最小公倍数是:%d\n", lcm);
return 0;
}
```
这段代码首先从用户那里获取两个正整数,然后通过`while`循环实现辗转相除法求最大公约数,最后计算最小公倍数并输出结果。
阅读全文
相关推荐


















