c语言最小公倍数递归
时间: 2023-12-02 08:37:47 浏览: 46
最小公倍数的C语言递归实现如下:
```
int gcd(int a, int b);
int lcm(int a, int b);
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int gcd(int a, int b) {
return a % b ? gcd(b, a % b) : b;
}
```
上述代码中,`gcd`函数使用递归实现了求两个整数的最大公约数,`lcm`函数则使用了公式法计算最小公倍数。在`lcm`函数中调用了`gcd`函数来求最大公约数。
相关问题
最小公倍数最大公因数c语言
最小公倍数和最大公因数的 C 语言代码如下:
```c
#include <stdio.h>
// 求最大公因数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
printf("最大公因数为:%d\n", gcd(a, b));
printf("最小公倍数为:%d\n", lcm(a, b));
return 0;
}
```
在这个程序中,我们定义了两个函数,`gcd` 用来求最大公因数,`lcm` 用来求最小公倍数。其中,`gcd` 函数使用递归实现,当 `b` 等于 0 时,返回 `a`,否则返回 `b` 和 `a % b` 的最大公因数。`lcm` 函数则直接用 `a * b` 除以它们的最大公因数得到最小公倍数。在 `main` 函数中,我们先输入两个整数,然后调用 `gcd` 和 `lcm` 函数分别求它们的最大公因数和最小公倍数,最后输出结果。
用lcm求最小公倍数C语言
最小公倍数(Least Common Multiple,简称 LCM)可以通过两数的乘积除以它们的最大公约数(Greatest Common Divisor,简称 GCD)来计算。因此,我们需要先写一个函数来求两个数的 GCD,然后用它来计算 LCM。
以下是用 C 语言实现求最小公倍数的代码:
```c
#include <stdio.h>
// 求两个数的最大公约数
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);
}
int main() {
int a, b;
printf("请输入两个数:");
scanf("%d%d", &a, &b);
printf("它们的最小公倍数是:%d\n", lcm(a, b));
return 0;
}
```
在这个代码中,我们先定义了一个 `gcd` 函数,用递归的方式求两个数的最大公约数。然后,我们定义了一个 `lcm` 函数,用上面提到的公式计算两个数的最小公倍数。最后,在 `main` 函数中,我们读取用户输入的两个数,调用 `lcm` 函数来求它们的最小公倍数,并将结果输出到控制台。
注意,这个代码中没有对输入的数进行错误处理,所以如果用户输入的不是整数,程序将会崩溃。在实际应用中,我们应该对输入进行合法性检查,以确保程序的稳健性。