C++ 实现输入多对正整数求最大公约数和最小公倍数
以下是实现该功能的 C++ 代码: ```cpp #include <iostream> using namespace std; // 求最大公约数的函数,使用欧几里得算法 int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; } // 求最小公倍数的函数,根据公式 lcm(a, b) = a * b / gcd(a, b) int lcm(int a, int b) { return a * b / gcd(a, b); } int main() { int k; cin >> k; // 输入 k 的值 for (int i = 0; i < k; i++) { int m, n; cin >> m >> n; // 输入每一对 m 和 n 的值 // 计算最大公约数和最小公倍数 int greatestCommonDivisor = gcd(m, n); int leastCommonMultiple = lcm(m, n); // 输出结果 cout << greatestCommonDivisor << " " << leastCommonMultiple << endl; } return 0; } ``` ### 代码解释: 1. **`gcd` 函数**:使用欧几里得算法来计算两个数的最大公约数。该算法的核心思想是通过不断用较小数去除较大数,并将余数作为新的较小数,直到余数为 0,此时的除数就是最大公约数。 2. **`lcm` 函数**:根据最小公倍数的计算公式 `lcm(a, b) = a * b / gcd(a, b)` 来计算两个数的最小公倍数。 3. **`main` 函数**: - 首先读取整数 `k`,表示有 `k` 对正整数需要处理。 - 然后使用 `for` 循环 `k` 次,每次读取一对正整数 `m` 和 `n`。 - 调用 `gcd` 函数和 `lcm` 函数分别计算最大公约数和最小公倍数。 - 最后输出每一对数的最大公约数和最小公倍数,中间用空格隔开。 ######[AI问答 | 529点数解答 | 2026-06-21 20:02:30]
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)89
- 高考毕业晚会难题:从学生能力值求最大默契程度的Python解法(字节豆包 | 487点数解答 | 2026-01-24 13:10:18)79
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)474
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)122
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)122
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)111
- 求解特定条件下整数序列的最小值:算法分析与代码实现(字节豆包 | 746点数解答 | 2026-01-24 13:14:40)98
- 使用C++计算多台设备运行周期的最小同步点(字节豆包 | 209点数解答 | 2026-04-25 20:16:29)22
- C++ 多设备运行周期最小公倍数 LCM 求解算法详解(DeepSeek | 1469点数解答 | 2026-06-12 19:56:36)21
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)358
- C语言:按序读入浮点数、整数、字符并按新顺序输出,附代码实现 (字节豆包 | 108点数解答 | 2024-09-30 22:54:08)372
- C语言:按特定顺序读入并输出浮点数、整数和字符,精确控制小数位(字节豆包 | 155点数解答 | 2024-10-08 22:06:18)365