用c语言解决最小公倍数最大公因数
时间: 2024-12-15 19:16:21 浏览: 7
C语言实现最大公约数和最小公倍数算法
在 C 语言中,计算两个整数的最大公约数 (Greatest Common Divisor, GCD) 和最小公倍数 (Least Common Multiple, LCM) 可以通过多种算法实现,比如欧几里得算法(Euclidean Algorithm)求 GCD,然后利用 GCD 的性质来求 LCM。
**求最大公约数 (GCD)**
欧几里得算法:
```c
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
```
这里,a除以b的余数就是新的b,递归地重复这个过程,直到余数为0,此时的a即为GCD。
**求最小公倍数 (LCM)**
利用公式 `LCM(a, b) = |a * b| / GCD(a, b)`,可以先计算出GCD,再计算LCM:
```c
int lcm(int a, int b) {
return abs(a * b) / gcd(a, b);
}
```
注意 `abs()` 函数用于返回正数,因为LCM的结果总是非负的。
阅读全文