用gcc语言编译由键盘输入两个正整数,输出其最大公约数和最小公倍数。
时间: 2024-10-22 14:23:16 浏览: 15
在GCC编译器下,你可以使用C语言编写一个程序来计算两个正整数的最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM)。这里是一个简单的示例:
```c
#include <stdio.h> // 包含输入输出函数
#include <math.h> // 包含求最大公约数的欧几里得算法
// 函数声明:计算两个数的最大公约数
int gcd(int a, int b);
int main() {
int num1, num2; // 定义两个整数变量
printf("请输入两个正整数: ");
scanf("%d %d", &num1, &num2); // 从键盘读取输入
// 检查输入是否为正整数
if (num1 <= 0 || num2 <= 0) {
printf("输入错误,数字应为正整数。\n");
return 1;
}
// 计算最大公约数
int gcd_result = gcd(num1, num2);
printf("两数的最大公约数是: %d\n", gcd_result);
// 根据公式 LCM(a, b) = |a * b| / GCD(a, b)
int lcm_result = abs(num1 * num2) / gcd_result;
printf("两数的最小公倍数是: %d\n", lcm_result);
return 0;
}
// 欧几里得算法实现最大公约数
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
```
在这个程序中,我们首先定义了一个`gcd`函数用于计算两个数的最大公约数。然后,在`main`函数中,用户通过键盘输入两个正整数,我们检查并计算它们的最大公约数和最小公倍数。
运行此程序后,它将提示用户输入两个正整数,并显示结果。注意,为了简便起见,这个例子假设用户会输入正确的数值;实际应用中可能需要添加更多错误处理和输入验证。
阅读全文