2개의 자연수 x, y가 주어질 때 x, y의 최대공약수를 구하는 알고리즘
GCD(x, y)를 구한 후 LCM(x, y)도 응용해 구할 수 있다.
두 수(x, y)를 소인수분해한 뒤, 두 수의 공통된 소인수
를 모두 곱한 값
x, y
= 자연수 x, yr
= x % yx % y == 0이 될 때까지,
x→y를 대입 & y→r(:x%y)를 대입해 최종 y의 값이 최대공약수가 된다.
두 수(x, y)를 소인수분해한 뒤, 두 수의 모든 소인수
를 곱한 값
x*y // GCD(x, y)
ex)
x = 10, y = 12
일 때 두 수의 GCD와 LCM을 구하시오.
GCD(x, y) = 10(x) % 12(y) == 10(r)
= 12 (x→y) % 10(y→r) == 2(r)
= 10(x→y) % 2(y→r) == 5
GCD(10, 12) = 2
LCM(x, y) = (x * y) // GCD(x, y)
= (10*12) // 2
LCM(10, 12) = 60