如何用c语言求最小公倍数
时间: 2023-11-29 11:05:50 浏览: 36
可以使用欧几里得算法(辗转相除法)来求两个数的最大公约数,进而求得最小公倍数。以下是示例代码:
```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 = 12, b = 18;
int result = lcm(a, b);
printf("最小公倍数是:%d", result);
return 0;
}
```
这个程序会输出:
```
最小公倍数是:36
```
注意,这只是一个示例程序,实际上求最小公倍数时可能需要注意数值溢出等问题。
希望能帮到你!
相关问题
给三个数用c语言求最小公倍数
可以使用以下方法来求最小公倍数:
1. 定义函数 `gcd` 用于求最大公约数
```c
int gcd(int a, int b)
{
if (b == 0)
return a;
else return gcd(b, a % b);
}
```
2. 在主函数中定义变量,输入三个数并调用 `gcd` 函数
```c
int main()
{
int a, b, c, lcm;
scanf("%d %d %d", &a, &b, &c);
lcm = a * b / gcd(a, b);
lcm = lcm * c / gcd(lcm, c);
printf("最小公倍数是 %d", lcm);
return 0;
}
```
这段代码可以用来求解三个数的最小公倍数。
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 num1, num2;
printf("请输入两个正整数:");
scanf("%d%d", &num1, &num2);
printf("它们的最小公倍数为:%d\n", lcm(num1, num2));
return 0;
}
```
在这个程序中,我们先定义了两个函数 `gcd` 和 `lcm`,分别用来求最大公约数和最小公倍数。其中,最小公倍数的计算是通过先求出最大公约数,然后用两个数的乘积除以最大公约数得到的。
在 `main` 函数中,我们先输入两个正整数,然后调用 `lcm` 函数计算它们的最小公倍数,并输出结果。