Jump to content

유클리드 호제법

From DawoumWiki, the free Mathematics self-learning

이 글은 한글 위키피디아의 같은 제목의 기사를 발췌한 것이며, 가능한 영문 위키피디아의 번역본을 보시기 바랍니다.

유클리드 호제법(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입니다.

정수에 대한 유클리드 호제법

정리

이고, 로 나눈 나머지가 이라고 놓습니다. (여기서 이고, 인 정수.)

의 최대공약수를 라고 하면, 다음이 성립합니다.

위에서 소개한 1071과 1029에 대한 예시를 위와 같은 표현으로 적어보면,

처럼 쓸 수 있습니다.

다항식에 대한 유클리드 호제법

임의의 두 다항식에 대해서도 유클리드 호제법과 같은 원리를 사용하여, 두 다항식의 최대차수공약다항식을 구할 수 있습니다. 즉, 다음과 같은 정리가 성립합니다.

정리

이고, 로 나눈 나머지가 이라고 놓습니다. (여기서 이고, 인 다항식, 의 차수를 뜻합니다.)

의 최대차수공약다항식을 라고 하면, 다음이 성립합니다.

다항식의 경우의 예시

을 예로 들어 보겠습니다.

위 식으로부터, 입니다.

(에서, 상수는 가역원이므로, 공약다항식에 대해서 말할 때에는 곱해주어서 계수를 조절해줄 수 있습니다.)

연분수

위에 든 예에서 나온 1071과 1029의 최대공약수를 구하는 과정은 다음과 같이 나타낼 수 있습니다.

즉, 다음과 같이 나눗셈의 꼴로 바꾸어서 표현할 수 있습니다.

따라서, 연분수로 표현하면 다음과 같습니다.

이와 같이, 의 최대공약수를 구할 때의 유클리드 호제법의 나눗셈의 모양은 유리수 의 연분수 전개와 같습니다.

응용예제

응용예제1

다음 등식을 만족하는 자연수 의 값을 구하여라.

해설: mowoum:유클리드_호제법#응용예제1