C语言,写两个函数,分别求两个整数的最大公约数和 最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入
时间: 2023-11-27 22:10:01 浏览: 62
好的,以下是实现代码:
```c
#include <stdio.h>
int gcd(int a, int b); // 求最大公约数函数声明
int lcm(int a, int b); // 求最小公倍数函数声明
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 调用求最大公约数函数
int result_gcd = gcd(num1, num2);
printf("%d和%d的最大公约数为:%d\n", num1, num2, result_gcd);
// 调用求最小公倍数函数
int result_lcm = lcm(num1, num2);
printf("%d和%d的最小公倍数为:%d\n", num1, num2, result_lcm);
return 0;
}
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
int lcm(int a, int b) {
int temp = gcd(a, b);
return a * b / temp;
}
```
在上面的代码中,我们首先声明了两个函数 `gcd` 和 `lcm` 分别用来求最大公约数和最小公倍数。在主函数中,我们先通过 `scanf` 函数从键盘输入两个整数,然后分别调用 `gcd` 和 `lcm` 函数,将结果存储到 `result_gcd` 和 `result_lcm` 变量中,最后将结果输出到屏幕上。
需要注意的是,我们在 `gcd` 函数中使用了辗转相除法(欧几里得算法)来求最大公约数,而在 `lcm` 函数中则是使用了最大公约数来求最小公倍数。这两个算法是比较常见的求解最大公约数和最小公倍数的方法。
阅读全文