1. 정의
A = Bq + R일 때, A와 B의 최대공약수 G는 B와 R의 G와 같다.
를 활용하여, 연쇄
적인 나눗셈으로 A,B의 최대공약수를 구하는 방법을 말한다.
2. 원리
정의에서 연쇄
적인 나눗셈이라고 한 이유는 다음과 같다.
1. A = Bq + R
2. B = Rq + R'
3. R = R`q + 0
간단하게 3번안에 끝나는 예시를 보자.
- A,B의 G는 B,R의 G와 같음.
- B,R의 G는 R,R'의 G와 같음.
- 마지막 식에서 나머지가 없으므로, R'는 R의 약수임. R과 R'의 최대 공약수는 당연하게도 R'임.
- 이제 연어처럼 3 -> 1로 거슬러 올라가면 종국에 A,B의 최대공약수는 R'랑 같음.
3. 증명
(1) A와 B와 R이 같은 G를 공유하는가?
A = Ga, B = Gb (G가 최대공약수임으로, a와b는 서로소)
A = Bq + R 임으로,
R = G(a+bq)이다. 따라서 같은 G를 공유한다.
(2) B와 R의 최대공약수도 G가 맞는가?
B와 R의 최대공약수도 G려면, 위의 식에서 b와 (a+bq)도 서로소여야 한다.
G가 최대공약수이면, B와 R을 동시에 나눌 수 있는 수는 모두 G에 합해져 있으므로 나머지인 b와 a+bq는 절대로 서로 나누는 수가 공유되어서는 안되기 때문이다.
귀류법을 사용하겠다.
귀류법은 결론을 부정했을 시 생기는 모순으로 원명제가 참임을 증명하는 방식이다.
G가 공약수가 아니라서 b와 a+bq 사이야 공약수가 m이 있다고 가정해보겠다.
b = mk
a+bq = mk'
그러면 다음과 같은 모순이 생긴다.
a+bq = a+mkq = mk'
a = mk'-mkq
a = m(k'-kq)
맨 위에서 a와 b는 서로소라고 했다.
만약 m >=2 이면 해당 전제와 모순된다. m = 1 이면, b와 a+bq는 모순된다.
따라서 b와 a+bq는 서로소이고, B와 R은 G를 최대공약수로 공유한다.
'알고리즘 > 알고리즘-이론' 카테고리의 다른 글
다익스트라 알고리즘 개념 java (0) | 2024.10.09 |
---|---|
최대공약수(GCD)와 최소공배수(LCM)의 관계 (0) | 2024.09.24 |
이분 탐색 & Upper Bound, Lower Bound 개념 정리 (0) | 2024.07.24 |
[자료구조] 그래프를 자료구조로 나타내보자! (0) | 2024.07.12 |
DFS와 BFS (0) | 2024.07.11 |