辗转相除法求最大公约 stl __gcd()
时间: 2024-10-27 15:05:00 浏览: 25
STL_File.zip_STL_reading_stl reader
辗转相除法,也称欧几里得算法,是一种古老的计算两个正整数最大公约数(Greatest Common Divisor, GCD)的方法。在C++标准库中,`<algorithm>`头文件提供了一个函数`__gcd()`用于快速计算两数的最大公约数。这个函数接受两个整数作为输入参数,例如:
```cpp
#include <iostream>
#include <algorithm>
int main() {
int a = 48;
int b = 18;
int result = std::gcd(a, b); // 使用__gcd()函数
std::cout << "The greatest common divisor of " << a << " and " << b << " is: " << result << std::endl;
return 0;
}
```
在这个例子中,`std::gcd(a, b)`会返回48和18的最大公约数。辗转相除法的工作原理基于这样一个事实:两个整数的最大公约数等于其中较小的那个数和两数余数的最大公约数。
阅读全文