如何用C语言求两个数的最大公约数和最小公倍数
时间: 2024-12-11 19:32:20 浏览: 79
在C语言中,可以使用欧几里得算法(也称辗转相除法)来求两个数的最大公约数(Greatest Common Divisor, GCD),然后通过这两个数和最大公约数计算最小公倍数(Least Common Multiple, LCM)。以下是基本步骤:
**求最大公约数 (GCD):**
```c
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
```
这里,如果`b`等于0,则`a`就是当前的GCD;否则,递归地对`b`和`a除以b的余数`求GCD。
**求最小公倍数 (LCM):**
最小公倍数可以通过下面的公式计算,其中`d`是最大公约数:
```c
int lcm(int a, int b) {
int temp = gcd(a, b);
return (a * b) / temp;
}
```
这里,`(a * b)`除以`temp`就得到了`a`和`b`的最小公倍数。
**使用示例:**
```c
#include <stdio.h>
int main() {
int num1, num2;
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);
int gcd_val = gcd(num1, num2);
int lcm_val = lcm(num1, num2);
printf("GCD of %d and %d is: %d\n", num1, num2, gcd_val);
printf("LCM of %d and %d is: %d\n", num1, num2, lcm_val);
return 0;
}
```
记得在实际项目中处理好用户输入的数据边界和异常情况。
阅读全文
相关推荐


















