C语言求最大公因数最小公倍数函数
时间: 2024-04-09 10:23:49 浏览: 17
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 num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
printf("最大公因数为:%d\n", gcd(num1, num2));
printf("最小公倍数为:%d\n", lcm(num1, num2));
return 0;
}
```
这段代码中,`gcd`函数用于求最大公因数,`lcm`函数用于求最小公倍数。在`main`函数中,用户需要输入两个整数,然后调用这两个函数来计算最大公因数和最小公倍数,并将结果打印出来。
相关问题
最小公倍数最大公因数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` 函数分别求它们的最大公因数和最小公倍数,最后输出结果。
C语言写两个函数,求这两个整数的最大公因数和最小公倍数
好的,这个问题可以使用辗转相除法和最小公倍数公式来完成,具体代码如下:
```c
#include <stdio.h>
// 求最大公因数
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
// 求最小公倍数
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 和 %d 的最大公因数为:%d\n", a, b, gcd(a, b));
printf("%d 和 %d 的最小公倍数为:%d\n", a, b, lcm(a, b));
return 0;
}
```
在这个程序中,我们首先定义了一个 `gcd` 函数,用于求两个整数的最大公因数,它接受两个整数类型的参数 `a` 和 `b`。在函数中,我们使用辗转相除法求出 `a` 和 `b` 的最大公因数。
然后我们定义了一个 `lcm` 函数,用于求两个整数的最小公倍数,它也接受两个整数类型的参数 `a` 和 `b`。在函数中,我们使用最小公倍数公式 `lcm(a, b) = a * b / gcd(a, b)` 计算出 `a` 和 `b` 的最小公倍数,其中 `gcd(a, b)` 表示 `a` 和 `b` 的最大公因数。
在 `main` 函数中,我们从标准输入读取两个整数,并将它们分别赋值给变量 `a` 和 `b`。然后分别调用 `gcd` 和 `lcm` 函数,输出它们的最大公因数和最小公倍数。