百姓心情网-为你提供各类经典名言与文案句子

输入两个正整数m和n求其最大公约数和最小公倍数

求两个正整数m和n的最大公约数(GCD)和最小公倍数(LCM)的方法如下:

最大公约数(GCD)

最大公约数可以使用欧几里得算法(辗转相除法)来求解。具体步骤如下:

1. 用较大的数除以较小的数,得到余数。

2. 用较小的数除以上一步的余数,再得到新的余数。

3. 重复上述步骤,直到余数为0。此时,最后一个非零余数就是最大公约数。

最小公倍数(LCM)

最小公倍数可以通过以下公式计算:

\[ \text{LCM}(m, n) = \frac{m \times n}{\text{GCD}(m, n)} \]

代码示例

```cpp

include

using namespace std;

int main() {

int m, n;

cout << "请输入两个正整数m和n: ";

cin >> m >> n;

// 确保m是较大的数

if (m < n) {

swap(m, n);

}

// 使用欧几里得算法求最大公约数

int gcd = 0;

while (n != 0) {

int temp = n;

n = m % n;

m = temp;

}

gcd = m;

// 计算最小公倍数

int lcm = m * n / gcd;

cout << "最大公约数为: " << gcd << endl;

cout << "最小公倍数为: " << lcm << endl;

return 0;

}

```

解释

输入:

程序首先接收两个正整数m和n。

调整大小:

确保m是较大的数。

欧几里得算法:

通过循环计算最大公约数。

计算最小公倍数:

使用公式 \( \text{LCM}(m, n) = \frac{m \times n}{\text{GCD}(m, n)} \) 计算最小公倍数。

输出:

程序输出最大公约数和最小公倍数。

这个方法简单且高效,适用于大多数情况。

上一篇上一篇:什么是硬盘

下一篇下一篇:没有了