728x90
유클리드 호제법
- 유클리드 호제법(Euclidean algorithm)은 두 개의 정수의 최대공약수(GCD, Greatest Common Divisor)를 찾는 알고리즘, 이 알고리즘은 오래 전에 유클리드(Euclid)에 의해 개발되었으며, 지금까지도 매우 효율적으로 사용됩니다.
- 유클리드 호제법은 나누고 남은 나머지를 계속해서 구하다가 나머지가 0이 될 때까지 반복합니다. 그러면 0이 아닌 나머지를 얻게 되고, 그 때의 나머지가 두 정수의 최대공약수가 됩니다.
-> 여기서 m = 27, n = 5이라고 가정해보자. 나머지(r)가 0이 될때까지 반복한다.
r = 27 % 5이므로 나머지인 2가 r이된다.
나눈수인 5가 m이 되고 나머지인 2가 n이 된다.
m = 5, n = 2;
r이 0이되면 while문이 종료되기 때문에 다시 위로 올라가서
r = 5 % 2이므로 나머지인 1이 r이된다.
여기서 다시 m = 2, n = 1;
r = 2 % 1, r은 0이되어서 반복문이 종료되고 최대공약수를 담아주는 변수인 num1에 n값이 담긴다. 즉 27과 5의 최대공약수는 1이된다.
최소공배수를 구하는 방식은 아주 간단한데, plus변수에는 m*n(27 * 5)의 값이 담겨있다. 두 수를 곱한값에 최대공약수를 나누면 그 값이 최소공배수가 된다.
27 * 5 / 1 == 최소공배수
'프로그래머스' 카테고리의 다른 글
프로그래머스 가장 가까운 같은 글자(JAVA) (0) | 2023.11.27 |
---|---|
프로그래머스 2016년 (0) | 2023.11.23 |
프로그래머스 명예의 전당 (1) (0) | 2023.11.22 |
프로그래머스 무작위로 K개의 수 뽑기 (0) | 2023.11.13 |
프로그래머스 JadenCase 만들기 (0) | 2023.11.11 |