알고리즘

백준_2609_최대공약수_최소공배수

GriffinDouble 2019. 2. 17. 00:53

최대공약수 & 최소공배수 구하는법


유클리드 호제법 이용


https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95#%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98


최대 공약수

  1. 입력으로 두 수 m,n(m>n)이 들어온다.
  2. n이 0이라면, m을 출력하고 알고리즘을 종료한다.
  3. m이 n으로 나누어 떨어지면, n을 출력하고 알고리즘을 종료한다.
  4. 그렇지 않으면, 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