输入两个正整数 m 和 n,求其最大公约数和最小公倍数。C++
时间: 2023-11-03 11:54:41 浏览: 160
你好!可以使用欧几里得算法来求解两个正整数 m 和 n 的最大公约数,然后通过最大公约数求得最小公倍数。
首先,我们定义一个函数来计算最大公约数:
```c
int gcd(int m, int n) {
if (n == 0) {
return m;
}
return gcd(n, m % n);
}
```
接下来,我们可以使用最大公约数来计算最小公倍数:
```c
int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
```
然后,你可以在你的代码中调用这两个函数来求解最大公约数和最小公倍数:
```c
#include <stdio.h>
int gcd(int m, int n);
int lcm(int m, int n);
int main() {
int m, n;
printf("请输入两个正整数:");
scanf("%d%d", &m, &n);
int greatestCommonDivisor = gcd(m, n);
int leastCommonMultiple = lcm(m, n);
printf("最大公约数: %d\n", greatestCommonDivisor);
printf("最小公倍数: %d\n", leastCommonMultiple);
return 0;
}
int gcd(int m, int n) {
if (n == 0) {
return m;
}
return gcd(n, m % n);
}
int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
```
希望能对你有帮助!如果还有其他问题,请随时提问。
阅读全文