C语言写两个函数分别求两个整数的最大公约数与最小公倍数用主函数调用这两个函数并输出结果,两个整数由键盘输入
时间: 2025-06-24 07:42:26 浏览: 27
### C语言实现最大公约数和最小公倍数
以下是基于C语言编写的程序,其中包含了两个函数用于计算最大公约数和最小公倍数,并通过主函数调用这些函数完成输入输出操作。
#### 示例代码
```c
#include <stdio.h>
// 声明求最大公约数的函数
int gcd(int a, int b);
// 声明求最小公倍数的函数
int lcm(int a, int b);
void main() {
int x, y;
// 提示用户输入两个整数
printf("请输入两个整数:");
scanf("%d %d", &x, &y);
// 计算并打印最大公约数
printf("最大公约数为:%d\n", gcd(x, y));
// 计算并打印最小公倍数
printf("最小公倍数为:%d\n", lcm(x, y));
}
// 定义求最大公约数的函数 使用辗转相除法
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a; // 返回最大公约数值[^1]
}
// 定义求最小公倍数的函数 利用公式:两数乘积等于最大公约数与最小公倍数之积
int lcm(int a, int b) {
if (a == 0 || b == 0) return 0; // 如果任意一个数为零,则最小公倍数也为零
return abs(a * b) / gcd(a, b); // 返回最小公倍数值[^2]
}
```
此代码实现了以下功能:
- **gcd** 函数采用辗转相除法来寻找两个整数的最大公约数。
- **lcm** 函数利用数学关系 `a × b = GCD(a, b) × LCM(a, b)` 来计算最小公倍数[^3]。
#### 关键点解释
- 辗转相除法是一种高效算法,在每次迭代中将较大数替换为其余数,直至其余数为零为止。此时较小的那个数即为所求数字的最大公约数[^4]。
- 对于最小公倍数而言,当其中一个参数为零时特殊处理返回零;否则按照前述公式进行运算得出结果[^5]。
阅读全文
相关推荐

















