郑轻ojC++最大公约与最小公倍C++
时间: 2024-09-23 14:00:25 浏览: 39
郑轻oj(ZJU Online Judge)是一个常用于算法竞赛练习的在线评测平台,它的题库包含了各种难度的编程题目,包括数学相关的,比如求解最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)。在C++中,计算两个整数的最大公约数通常可以使用欧几里得算法(Euclidean Algorithm),也称为辗转相除法。而计算最小公倍数的一个常见方法是利用公式LCM(a, b) = |a * b| / GCD(a, b),因为两数乘积除以它们的最大公约数等于他们的最小公倍数。
以下是使用C++实现的简单示例:
```cpp
#include <iostream>
using namespace std;
// 求最大公约数的欧几里得算法
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 根据最大公约数计算最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
cout << "请输入两个整数: ";
cin >> num1 >> num2;
int result_gcd = gcd(num1, num2);
int result_lcm = lcm(num1, num2);
cout << "最大公约数: " << result_gcd << endl;
cout << "最小公倍数: " << result_lcm << endl;
return 0;
}
```
阅读全文