用c语言写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果,两个整数由键盘输入,如果输入的数中包含负数,则输出Input Error
时间: 2023-11-27 16:57:47 浏览: 75
C语言求两个数的最大公约数和最小公倍数
以下是用C语言实现求最大公约数和最小公倍数的代码:
```c
#include <stdio.h>
int gcd(int num1, int num2);
int lcm(int num1, int num2);
int main() {
int num1, num2;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
if (num1 < 0 || num2 < 0) {
printf("Input Error\n");
} else {
int GCD = gcd(num1, num2);
int LCM = lcm(num1, num2);
printf("最大公约数为:%d\n", GCD);
printf("最小公倍数为:%d\n", LCM);
}
return 0;
}
int gcd(int num1, int num2) {
int temp;
while (num2 != 0) {
temp = num1 % num2;
num1 = num2;
num2 = temp;
}
return num1;
}
int lcm(int num1, int num2) {
int GCD = gcd(num1, num2);
return (num1 * num2) / GCD;
}
```
其中,`gcd`函数用于求最大公约数,使用辗转相除法实现。`lcm`函数用于求最小公倍数,先用`gcd`函数求出最大公约数,然后用公式`(num1 * num2) / GCD`求出最小公倍数。
在主函数中,先从键盘输入两个整数,然后判断是否有负数。如果存在负数,则输出`Input Error`;否则,调用`gcd`和`lcm`函数求出最大公约数和最小公倍数,并输出结果。
阅读全文