编写c语言程序,实现输入两个整数,输出这两个整数的最大公约数和最小公倍数
时间: 2024-10-24 10:08:09 浏览: 34
c代码-输入两个正整数m和n,求其最大公约数和最小公倍数。
在C语言中,可以使用欧几里得算法(辗转相除法)来计算两个整数的最大公约数(Greatest Common Divisor, GCD),然后再用这两个数和它们的GCD来计算最小公倍数(Least Common Multiple, LCM)。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
// 函数声明:计算最大公约数
int gcd(int a, int b);
// 函数声明:计算最小公倍数
int lcm(int a, int b);
// 欧几里得算法实现gcd
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, gcd_value, lcm_value;
// 输入两个整数
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 计算最大公约数
gcd_value = gcd(num1, num2);
// 计算并输出最小公倍数
lcm_value = lcm(num1, num2);
printf("最大公约数(GCD)是:%d\n", gcd_value);
printf("最小公倍数(LCM)是:%d\n", lcm_value);
return 0;
}
```
在这个程序中,`gcd`函数用于递归地计算两个数的最大公约数,而`lcm`函数则是利用`gcd`的结果来直接得出最小公倍数。用户可以在运行时输入两个整数,然后程序会显示这两个数的最大公约数和最小公倍数。
阅读全文