c++最小公倍数最大公约
时间: 2023-07-05 15:33:56 浏览: 339
C++中可以使用标准库函数`__gcd()`计算最大公约数,使用以下代码即可:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a = 12, b = 16;
int gcd = __gcd(a, b);
cout << "最大公约数为:" << gcd << endl;
return 0;
}
```
计算最小公倍数可以通过最大公约数公式:两数乘积等于这两个数的最大公约数与最小公倍数的积,即:
```cpp
lcm = a * b / gcd(a, b)
```
使用以下代码即可计算最小公倍数:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a = 12, b = 16;
int gcd = __gcd(a, b);
int lcm = a * b / gcd;
cout << "最小公倍数为:" << lcm << endl;
return 0;
}
```
相关问题
求两个数的最大公约c++和公倍数新手
求两个整数的最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM),对于初学者来说,可以借助欧几里得算法(Euclidean Algorithm)来计算GCD,然后利用公式 GCD(a, b) * LCM(a, b) = a * b 来得到LCM。
以下是一个简单的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;
// 输出最大公约数
cout << "这两个数的最大公约数是:" << gcd(num1, num2) << endl;
// 输出最小公倍数
cout << "它们的最小公倍数是:" << lcm(num1, num2) << endl;
return 0;
}
```
洛谷P1029 [NOIP2001普及组]最大公约 数和最小公倍数问题
洛谷P1029题是关于求两个非负整数的最大公约数(GCD)和最小公倍数(LCM)的问题。这个问题通常使用辗转相除法(也称为欧几里得算法)来求最大公约数,然后利用最大公约数来求最小公倍数。
最大公约数是指两个或多个整数共有约数中最大的一个,而最小公倍数是指能被两个或多个整数整除的最小的正整数。对于任意两个正整数a和b,它们的最大公约数记为gcd(a, b),最小公倍数记为lcm(a, b),它们满足以下关系:
1. gcd(a, b) * lcm(a, b) = a * b
要解决这个问题,首先需要编写一个求最大公约数的函数,然后根据最大公约数和原来两个数的乘积计算出最小公倍数。以下是用C++语言实现的一个示例代码:
```cpp
#include <iostream>
using namespace std;
// 函数:计算最大公约数
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
// 函数:计算最小公倍数
int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
int main() {
int a, b;
cin >> a >> b;
cout << gcd(a, b) << endl;
cout << lcm(a, b) << endl;
return 0;
}
```
在实际使用中,用户需要输入两个非负整数,程序会输出它们的最大公约数和最小公倍数。
阅读全文
相关推荐








