유클리드 알고리즘(최대 공약수, 최소 공배수)
Goal 유클리드 알고리즘(Euclidean algorithm)이란? 최대 공약수(GCD)를 구하는 알고리즘으로, 두 자연수 또는 두 다항식 사이에서 최대 공약수를 구할 때 사용되는 알고리즘이다. (유클리드 호제법이라고도 한다. 호제법(互除法)이라는 말은 서로(互) 나누기(除) 때문에 붙여진 이름이다.) 성질 2개의 자연수(또는 다항식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 즉, a와 b의 최대 공약수를 gcd(a, b)라고 하면, gcd(a, b) = gcd(b, r) 이 성립한다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 ..