C语言最小公倍数与最大公约数怎么求
时间: 2024-11-23 10:07:15 浏览: 8
最大公约数和最小公倍数C语言实现.zip
在C语言中,计算两个整数的最小公倍数(LCM)和最大公约数(GCD)有多种算法可以实现。这里简单介绍两种常见的方法:
1. **辗转相除法(Euclidean Algorithm)** - 这是最常用的求最大公约数的方法。基本思想是利用“较大数除以较小数的余数”不断做除法,直到余数为0,此时较小数就是最大公约数。然后用原两数相除得到的结果乘以较大的数即为最小公倍数。
```c
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
```
2. **更相减损术** - 另一种古老的方法是不断地用两数之差取代原来的较大数,直到两数相等,这个相同的数就是它们的最大公约数。但是这种方法效率较低,一般用于教学演示。
```c
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * (b / gcd(a, b));
}
```
阅读全文