최대공약수 & 최소공배수 구하는법
유클리드 호제법 이용
최대 공약수
- 입력으로 두 수 m,n(m>n)이 들어온다.
- n이 0이라면, m을 출력하고 알고리즘을 종료한다.
- m이 n으로 나누어 떨어지면, n을 출력하고 알고리즘을 종료한다.
- 그렇지 않으면, m을 n으로 나눈 나머지를 새롭게 m에 대입하고, m과 n을 바꾸고 3번으로 돌아온다
출처: 위키백과
최소 공배수
= 두 수의 곱(m * n) / 최대공약수
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static int gcd(int a, int b) { int temp; while(b > 0) { temp = b; //잠시 여기저장 b = a % b; a = temp; // } return a; } public static int lcm(int big, int small) { int result = (big*small)/gcd(big,small); return result; } | cs |
'알고리즘' 카테고리의 다른 글
[프로그래머스 level3] 여행경로 (0) | 2020.12.17 |
---|---|
[프로그래머스 level3] 배달 (0) | 2020.10.09 |
[프로그래머스 level2] 주식 가격 (0) | 2020.09.23 |