编写函数gbs(a,b),求两个正整数的最大公约数和最小公倍数,输入两个正整数a和b,测试自编函数gbs(a,b)。
时间: 2023-04-01 19:04:13 浏览: 104
java面试题
可以回答这个问题。函数gbs(a,b)的实现方法如下:
```c
int gcd(int a, int b) {
if (b == ) {
return a;
}
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
void gbs(int a, int b, int *gcd_res, int *lcm_res) {
*gcd_res = gcd(a, b);
*lcm_res = lcm(a, b);
}
```
其中,gcd函数用于求最大公约数,lcm函数用于求最小公倍数。gbs函数则是将两个结果同时返回。可以通过以下方式测试:
```c
int main() {
int a = 12, b = 18;
int gcd_res, lcm_res;
gbs(a, b, &gcd_res, &lcm_res);
printf("gcd(%d, %d) = %d\n", a, b, gcd_res);
printf("lcm(%d, %d) = %d\n", a, b, lcm_res);
return ;
}
```
输出结果为:
```
gcd(12, 18) = 6
lcm(12, 18) = 36
```
阅读全文