이 글은 한글 위키피디아의 같은 제목의 기사를 발췌한 것이며, 가능한 영문 위키피디아의 번역본을 보시기 바랍니다.
유클리드 호제법(Euclidean algorithm)은 두 개의 자연수 또는 정식의 최대공약수를 구하는 알고리듬의 하나입니다. 호제법이란 말은 두 수가 서로(호) 상대방 수를 나누어(제)서 결국 원하는 수를 얻는 알고리듬을 이르는 말입니다. 두 개의 자연수(또는 다항식)
에 대해서
를
로 나눈 나머지를
이라 하면(단,
),
와
의 최대공약수는
와
의 최대공약수와 같습니다. 이 성질에 따라,
를
로 나눈 나머지
를 구하고, 다시
을
로 나눈 나머지를 구하는 과정을 반복하여 나머지가
이 되었을 때 나누는 수가
와
의 최대공약수입니다. 이는 명시적으로 기술된 가장 오래된 알고리듬으로서도 알려져 있습니다.
예시
1071과 1029의 최대공약수를 구하면,
- 1071은 1029로 나누어떨어지지 않기 때문에, 1071을 1029로 나눈 나머지를 구한다. => 42
- 1029는 42로 나누어떨어지지 않기 때문에, 1029를 42로 나눈 나머지를 구한다. => 21
- 42는 21로 나누어떨어집니다.
따라서, 최대공약수는 21입니다.
78696과 19332의 최대공약수를 구하면,
78696 |
= |
19332 × 4 + 1368
|
19332 |
= |
1368 × 14 + 180
|
1368 |
= |
180 × 7 + 108
|
180 |
= |
108 × 1 + 72
|
108 |
= |
72 × 1 + 36
|
72 |
= |
36 × 2
|
따라서, 최대공약수는 36입니다.
정수에 대한 유클리드 호제법
정리
이고,
를
로 나눈 나머지가
이라고 놓습니다. (여기서
이고,
은
인 정수.)
와
의 최대공약수를
라고 하면, 다음이 성립합니다.
![{\displaystyle \left(a,b\right)=\left(b,r\right).}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/8f34ce98e898e759db08ac3ed7237fac0fa2744b)
위에서 소개한 1071과 1029에 대한 예시를 위와 같은 표현으로 적어보면,
![{\displaystyle \left(1071,1029\right)=\left(1029,42\right)=\left(42,21\right)=\left(21,0\right)=21}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/28a78ff05151f0e27020eab4713cbe6878d8ed65)
처럼 쓸 수 있습니다.
다항식에 대한 유클리드 호제법
임의의 두 다항식에 대해서도 유클리드 호제법과 같은 원리를 사용하여, 두 다항식의 최대차수공약다항식을 구할 수 있습니다. 즉, 다음과 같은 정리가 성립합니다.
정리
이고,
를
로 나눈 나머지가
이라고 놓습니다. (여기서
이고,
은
인 다항식,
는
의 차수를 뜻합니다.)
와
의 최대차수공약다항식을
라고 하면, 다음이 성립합니다.
![{\displaystyle \left(f,g\right)=\left(g,r\right)}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/f39cc27a23b53cf90b29119ff877a0dd3501668d)
다항식의 경우의 예시
을 예로 들어 보겠습니다.
![{\displaystyle x^{3}+2x^{2}+x=(x^{2}-1)(x+2)+(2x+2)}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/0839353fee18938eb6615a62d4d73b8c45fa532e)
![{\displaystyle x^{2}-1=(2x+2)\left({\frac {x-1}{2}}\right)}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/ea18c97d886ad0967cf8e629a42289bdd060ec48)
위 식으로부터,
입니다.
(
에서, 상수는 가역원이므로, 공약다항식에 대해서 말할 때에는 곱해주어서 계수를 조절해줄 수 있습니다.)
연분수
위에 든 예에서 나온 1071과 1029의 최대공약수를 구하는 과정은 다음과 같이 나타낼 수 있습니다.
![{\displaystyle {\begin{matrix}1071&=&1029\times 1+42\\1029&=&42\times 24+21\\42&=&21\times 2\end{matrix}}}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/d7fc65d5a1562bd0521ddb63a95da7f804682e7f)
즉, 다음과 같이 나눗셈의 꼴로 바꾸어서 표현할 수 있습니다.
![{\displaystyle {\begin{matrix}1071/1029&=&1+42/1029\\1029/42&=&24+21/42\\42/21&=&2\end{matrix}}}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/925ec5dcb367b1f4ee1f05b16a3dde67ea1b307b)
따라서, 연분수로 표현하면 다음과 같습니다.
![{\displaystyle {\frac {1071}{1029}}=1+{\frac {1}{24+{\frac {1}{2}}}}}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/490cfc8f56480113d41febacf54912f03cf0761b)
이와 같이,
와
의 최대공약수를 구할 때의 유클리드 호제법의 나눗셈의 모양은 유리수
의 연분수 전개와 같습니다.
응용예제
응용예제1
다음 등식을 만족하는 자연수
의 값을 구하여라.
![{\displaystyle 2+{\frac {1}{k+{\frac {1}{m+{\frac {1}{5}}}}}}={\frac {803}{371}}}](https://dawoum.duckdns.org/api/rest_v1/media/math/render/svg/4fd3b2a3d060edfdcb7f74ba33a9a8098e28ee3d)
해설: mowoum:유클리드_호제법#응용예제1