The Wayback Machine - https://web.archive.org/web/20220615084734/https://zh.cppreference.com/w/cpp/numeric/gcd

std::gcd

来自cppreference.com
< cpp‎ | numeric
定义于头文件 <numeric>
template< class M, class N>
constexpr std::common_type_t<M, N> gcd(M m, N n);
(C++17 起)

计算整数 mn 的最大公约数。

目录

[编辑] 参数

m, n - 整数值

[编辑] 返回值

mn 均为零则返回零。否则返回 |m||n| 的最大公约数。

[编辑] 注意

MN 不是整数类型,或者若其中之一是(可有 cv 限定的) bool ,则程序为病式。

|m||n| 不能表示为 std::common_type_t<M, N> 类型的值,则行为未定义。

[编辑] 异常

不抛异常。

[编辑] 示例

#include <numeric>
int main() {
    constexpr int p {2 * 2 * 3};
    constexpr int q {2 * 3 * 3};
    static_assert(2 * 3 == std::gcd(p, q));
}

[编辑] 参阅

(C++17)
返回二个整数最小公倍数的 constexpr 函数模板
(函数模板) [编辑]