Dlise
시원한 냉장고
Dlise
전체 방문자
오늘
어제
  • 시원한 냉장고 (136)
    • Java (31)
      • Java (26)
      • Spring (5)
    • Algorithm & PS (25)
      • Algorithm (14)
      • Problem Solving (11)
    • Network (12)
    • Database (2)
    • Data Structure (4)
    • OOP & CleanCode (5)
    • Web (0)
    • Git (2)
    • AI (2)
    • Project (1)
      • Discord Bot (1)
    • Error (19)
    • Tools (5)
    • 수학 (5)
      • 확률과 통계(기초) (5)
    • 컴퓨터 구조 (3)
    • 활동 (20)
      • 행사 & 여행 (10)
      • 자격증 (4)
      • 회고 (6)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 통계학
  • CleanCode
  • 후위 표기법
  • 열혈강의자료구조
  • spring security in action second edition
  • 중위 표기법
  • 가장쉬운알고리즘책
  • 네트워크
  • java
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dlise

시원한 냉장고

Algorithm & PS/Algorithm

알고리듬 - 최대 공약수 & 최소 공배수 구하기(유클리드 호제법)

2023. 8. 30. 15:59

최대 공약수(GCD: Greatest Common Divisor)와 최소 공배수(LCM: Lowest Common Multiple)

를 구하는 방법에 대해 알아보자.

 

유클리드 호제법

유클리드 호제법(Euclidean-Algorithm)은 주어진 두 값의 최대 공약수를 구하는 알고리듬이다.

계산은 MOD 연산(%)을 활용한다.

 

진행 과정은 아래와 같다.

1. 주어진 두 값 중 큰 값을 작은 값으로 MOD 연산한다.

2. 앞의 과정에서 작은 값을 MOD 연산의 결과로 MOD 연산한다.

3. 결과가 0이 나오면 종료한다.

 

아래는 120과 34의 최대 공약수를 구한 예이다.

 

구현

내용이 어렵지 않아 바로 구현해 보았다.

 

전체 코드

package practice;

public class GCD {
    public static void main(String[] args) {
        gcd(120, 34);
        gcd(123, 456);
    }

    static void gcd(int n1, int n2) {
        int max = Math.max(n1, n2);
        int min = Math.min(n1, n2);

        int result = 0;
        do {
            result = max % min;
            max = min;
            min = result;
        } while(result != 0);

        System.out.println(n1 + ", " + n2 + "의 최대공약수 : " + max);
    }
}

큰 값을 max, 작은 값은 min에 담고 MOD 연산 결과가 0이 될 때까지 while문을 돌린다.

결과는 다음과 같다.

 

최소 공배수는 입력받은 두 값을 곱한 후 최대 공약수로 나누면 된다.

lcm = max * min / gcd

'Algorithm & PS > Algorithm' 카테고리의 다른 글

알고리듬 - 순열  (0) 2023.11.24
알고리듬 - 순위 매기기  (0) 2023.09.16
알고리듬 - 소수 구하기(에라토스테네스의 체)  (0) 2023.08.30
알고리듬 - 깊이 우선 탐색, 너비 우선 탐색  (0) 2023.08.28
알고리듬 - 합병, 퀵, 기수 정렬  (1) 2023.08.25
    'Algorithm & PS/Algorithm' 카테고리의 다른 글
    • 알고리듬 - 순열
    • 알고리듬 - 순위 매기기
    • 알고리듬 - 소수 구하기(에라토스테네스의 체)
    • 알고리듬 - 깊이 우선 탐색, 너비 우선 탐색
    Dlise
    Dlise

    티스토리툴바