两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数
时间: 2024-12-17 19:41:34 浏览: 4
Python自定义函数实现求两个数最大公约数、最小公倍数示例
5星 · 资源好评率100%
在计算机编程中,找到两个整数的最大公约数(Greatest Common Divisor, GCD)通常可以使用欧几里得算法(Euclidean Algorithm),而最小公倍数(Least Common Multiple, LCM)可以用最大公约数来计算,因为有公式:两数乘积等于最大公约数乘以它们各自的最小公倍数。
首先,我们需要编写一个函数 `gcd` 来计算最大公约数。这里是一个基于递归版本的实现:
```c
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b); // 递归调用,直到b为0
}
}
```
然后,我们可以利用 `gcd` 函数来计算最小公倍数 `lcm`:
```c
int lcm(int a, int b) {
int temp_gcd = gcd(a, b); // 先计算最大公约数
return (a * b) / temp_gcd; // 根据公式:a * b = lcm * gcd
}
```
这两个函数可以一起用于找出任意两个整数的最大公约数和最小公倍数:
```c
int main() {
int num1, num2;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
int gcd_value = gcd(num1, num2);
int lcm_value = lcm(num1, num2);
printf("The GCD of %d and %d is %d.\n", num1, num2, gcd_value);
printf("The LCM of %d and %d is %d.\n", num1, num2, lcm_value);
return 0;
}
```
当运行上述程序时,用户会被提示输入两个整数,然后它会计算并显示这两个数的最大公约数和最小公倍数。
阅读全文