호제법이라는 말이 두 수를 서로 나눠보면서 원하는 수를 얻어간다는 뜻이다.

유클리드 호제법은 최대공약수(gcd)를 구하는 알고리즘으로 

두 수 a,b(a>=b) 일 때

gcd(a,b) { return b?gcd(b,a%b):a ; } 로 구현할 수 있다.

 

최대공약수 얘기를 한 겸 최소공배수(lcm)도 같이 얘기해야겠다.

최소공배수는 두 수 a, b 가 모두 가지는 배수의 최소값을 말한다.

최대공약수와 최소공배수의 관계에 따라 다음과 같이 구현할 수 있다.

lcm(a,b) { return a*b/gcd(a,b); }

두 수의 곱을 최대공약수로 나눈 값이 최소공배수 이다.

'algorithm > algorithm' 카테고리의 다른 글

기본 기하 공식  (0) 2020.02.28
볼록껍질 선분 처리하기  (0) 2020.02.28
세그먼트 트리 정리  (0) 2020.02.05
선분 교차 판별하기  (0) 2020.02.02
삼분 탐색(Ternary search)  (0) 2020.01.16

+ Recent posts