Namespaces
Variants

std:: gcd

From cppreference.net
헤더 파일에 정의됨 <numeric>
template < class M, class N >
constexpr std:: common_type_t < M, N > gcd ( M m, N n ) ;
(C++17부터)

정수 m n 최대공약수 를 계산합니다.

만약 M 또는 N 중 하나가 정수형이 아니거나, 둘 중 하나가 (가능하다면 cv 한정자 적용된) bool 인 경우, 프로그램은 형식에 맞지 않습니다.

만약 | m | 또는 | n | 중 하나가 std:: common_type_t < M, N > 타입의 값으로 표현될 수 없는 경우, 동작은 정의되지 않습니다.

목차

매개변수

m, n - 정수 값

반환값

만약 m n 이 모두 0이면, 0을 반환합니다. 그렇지 않으면, | m | | n | 의 최대공약수를 반환합니다.

예외

예외를 던지지 않습니다.

참고 사항

기능 테스트 매크로 표준 기능
__cpp_lib_gcd_lcm 201606L (C++17) std::gcd , std::lcm

예제

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

참고 항목

(C++17)
두 정수의 최소공배수를 계산합니다
(함수 템플릿)