c语言最大公约数 输入两个正整数,输出它们的最大公约数和最小公倍数。
时间: 2024-11-15 10:31:31 浏览: 62
最大公约数和最小公倍数C语言实现.zip
在 C 语言中,计算两个正整数的最大公约数 (Greatest Common Divisor, GCD) 可以使用欧几里得算法,也称为辗转相除法。该算法的基本思想是,对于任意两个正整数 a 和 b(假设 a > b),他们的最大公约数等于 a 除以 b 的余数 r 和 b 的最大公约数。
以下是使用欧几里得算法的一个简单的 C 代码示例:
```c
#include <stdio.h>
// 定义求最大公约数的函数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 计算并打印最小公倍数
void lcm(int a, int b) {
int lcm = (a * b) / gcd(a, b);
printf("最小公倍数 (LCM): %d\n", lcm);
}
int main() {
int num1, num2;
// 用户输入两个正整数
printf("请输入两个正整数: ");
scanf("%d %d", &num1, &num2);
// 计算并输出最大公约数
printf("最大公约数 (GCD): %d\n", gcd(num1, num2));
// 计算并输出最小公倍数
lcm(num1, num2);
return 0;
}
```
在这个程序中,首先通过 `gcd` 函数计算两数的最大公约数,然后根据公式 LCM(a, b) = |a * b| / GCD(a, b) 计算最小公倍数,并将其打印出来。
阅读全文