Euclidean Algorithm
·
Mathematics/Number Thoery
주어진 두 수의 최대공약수는 보통 소인수분해를 하여 구한다. 그러나 숫자가 커져가면 소인수분해가 힘들어지고, 최대공약수를 구하는 것 또한 만만찮은 작업이 된다. 이때 직접 소인수분해를 하지 않고도 최대공약수를 제시해주는 방법이 Euclidean Algorithm, 즉 유클리드 호제법이다. 기본적으로 알고리즘이므로 일련의 과정을 제시하고, 이 과정을 따라가면 반드시 최대공약수를 구할 수 있다. Euclidean Algorithm 주어진 두 정수 $a, b$에 대해 gcd($|a|, |b|$) = gcd($a, b$)이므로 편의상 $a \geq b > 0$이라 가정해도 문제가 되지 않는다. Division Algorithm에 의해 $$a = q_1b + r_1 (0 \leq r_1 < b)$$를 만족하는 $..