最大公约数与最小公倍数。题目内容:编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就
时间: 2023-05-04 18:01:27 浏览: 174
这道题目要求编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,则最小公倍数就是两数的乘积除以最大公约数。两个整数里有负的则最小公倍数就有负的,最小公倍数就是两数的乘积除以最大公约数的绝对值。两个整数由键盘输入,约定最大公约数为正整数,两数里有负的则最小公倍数就是两数的乘积除以最大公约数的绝对值。
相关问题
最大公约数与最小公倍数。题目内容: 编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。 输入格式:输入均不为0的整数n和m(n与m的乘积还在整数范围内)(两数之间用英文,隔开) 输出格式:输出这两个整数的最大公约数和最小公倍数 (两结果之间用英文,隔开) 用C语言实现
```c
#include <stdio.h>
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
// 求最小公倍数
int lcm(int a, int b) {
int g = gcd(a, b);
return (a / g) * b;
}
int main() {
int n, m;
scanf("%d,%d", &n, &m);
int g = gcd(n, m);
int l = lcm(n, m);
printf("%d,%d", g, l);
return 0;
}
```
用C语言编写程序:最大公约数与最小公倍数。题目内容:编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。 输入格式:输入均不为0的整数n和m(n与m的乘积还在整数范围内)(两数之间用英文,隔开) 输出格式:输出这两个整数的最大公约数和最小公倍数(两结果之间用英文,隔开) 输入样例:24,36 输出样例:12,72 输入样例:-48,128 输出样例:16,-384 时间限制:500ms内存限制:32000kb
以下是该程序的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 求两个数的最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求两个数的最小公倍数
int lcm(int a, int b) {
return abs(a * b) / gcd(a, b);
}
int main() {
int n, m;
scanf("%d,%d", &n, &m);
int result1 = gcd(n, m);
int result2 = lcm(n, m);
printf("%d,%d", result1, result2);
return 0;
}
```
程序中定义了两个函数gcd和lcm分别计算最大公约数和最小公倍数。最大公约数的计算采用了递归的方式,最小公倍数的计算则利用了最大公约数的结果。在主函数中,首先从键盘输入两个整数n和m,然后调用gcd和lcm函数计算最大公约数和最小公倍数,最后输出结果。需要注意的是,当n和m中有一个为负数时,最小公倍数为负数,因此在计算最小公倍数时需要加上取绝对值的操作。
阅读全文