본문 바로가기
알고리즘/Math

최대공약수

by 히포파타마스 2022. 8. 9.

최대공약수

 

특정한 두 수가 주어졌을 때 두 수 의 최대공약수(GCD)를 구하는 코드를 작성한다.

 

 

 

1. 풀이

1.1 풀이 방법

두 수 M과 N의 최대 공약수를 gcd(M, N)이라고 할 때, 다음과 같은 식이 성립한다. (M > N)

 

gcd(M, N) = gcd(N, M % N) (증명은.. 위키에 있다..!)

 

따라서 위의 식을 M % N = 0이 될 때까지 반복해서 적용한다.

M % N = 0이 성립한다는 것은 M이 N의 배수가 된다는 뜻이니까 gcd(M, N) = N이 된다.

 

 

 

1.2 코드

1.2.1 gcd

[gcd]

private int gcd(int M, int N) {   //최대공약수를 구하는 메서드
    if (M < N) {
        int temp = M;
        M = N;
        N = temp;
    }
    while (M % N != 0) {
        int tempM = M;
        M = N;
        N = tempM % N;
    }
    return N;
}

 

 

 

 

'알고리즘 > Math' 카테고리의 다른 글

징검다리 건너기  (0) 2023.03.10
골-드바흐의 추측  (0) 2022.08.11
조합 구현  (0) 2022.08.08
순열 구현  (0) 2022.08.05

댓글