호제법이란? 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 말한다.
예를 들어 94와 42의 최대공약수를 유클리드 호제법으로 구하면
94= 42×2+10 (94를 42로 나눈 나머지는 10)
42= 10×4+2 (42를 10으로 나눈 나머지는 2)
10= 2×5+0 (10을 2로 나눈 나머지는 0)
그래서 최대공약수는 2가 된다.
최대공약수를 구하는 기본적인 방법은 각 자연수를 소인수분해 해서 비교하면 쉽게 구할 수 있다. 하지만 각 자연수의 소인수분해가 쉽지 않은 큰 수 일 때는 이 유클리드 호제법이 아주 유용하게 쓰인다.
이번엔 유클리드 호제법을 이용하여 9x+25y=1과 같은 미지수가 2개인 일차방정식의 정수해를 구해보자.
먼저 x와 y의 계수인 9와 25로 유클리드 호제법을 이용해 한 개의 해를 구한다.
25= 9×2+7 (25를 9로 나눈 나머지는 7)
9= 7×1+2 (9를 7로 나눈 나머지는 2)
7= 2×3+1 (7를 2로 나눈 나머지는 1)
이 등식을 나머지에 관해 정리해 역순으로 대입하면 다음을 얻을 수 있다.
1= 7+2×(-3)
= 7+{9+(-1)×7}×(-3)
= 9×(-3)+7×4
= 9×(-3)+{25+(-2)×9}×4
= 9×(-11)+25×4
그래서 한 정수해는 (x, y)=(-11, 4) 임을 알 수 있고, 모든 정수해는 (x, y)=(25n-11, -9n+4) (n은 정수) 로 구할 수 있다.
이처럼 유클리드 호제법은 주어진 수들이 상당히 큰 수일 때, 최대공약수를 훨씬 빠르게 구할 수 있으며, 이를 활용하면 미지수가 2개인 일차방정식의 정수해를 구체적으로 구할 수 있다.