用C语言编程 程序功能:输入正整数 m 和 n,求 m 和 n 的最小公倍数。要求定义并调 用函数 gbs(m,n)求 m 和 n 的最小公倍数。
时间: 2024-03-17 18:41:44 浏览: 81
好的,我可以为您提供该程序的代码。请参考下面的示例代码:
```c
#include <stdio.h>
int gbs(int m, int n);
int main() {
int m, n;
printf("请输入两个正整数m和n:");
scanf("%d%d", &m, &n);
printf("%d和%d的最小公倍数为:%d\n", m, n, gbs(m, n));
return 0;
}
int gbs(int m, int n) {
int max, min, i, lcm;
max = m > n ? m : n;
min = m < n ? m : n;
for (i = 1; i <= min; i++) {
lcm = max * i;
if (lcm % min == 0) {
return lcm;
}
}
return max * min;
}
```
在该程序中,我们首先通过 `scanf` 函数获取用户输入的两个正整数 `m` 和 `n`,然后调用函数 `gbs` 计算它们的最小公倍数,并通过 `printf` 函数输出结果。
函数 `gbs` 的实现采用了暴力枚举的方法,从最小公倍数开始逐个判断是否能同时被 `m` 和 `n` 整除,如果能,则返回该最小公倍数;否则继续枚举下一个最小公倍数,直到找到能被同时整除的最小公倍数为止。如果枚举完所有可能的最小公倍数后仍然没有找到能被同时整除的最小公倍数,则直接返回 `m` 和 `n` 的乘积作为它们的最小公倍数。
阅读全文