본문 바로가기

백준/알아두면 유용한 것

최대공약수 최소공배수

반응형

최대공약수와 최소공배수를 Java에서 어떻게 구현하는지에 대한 설명입니다.

유클리드 호제법이라고도 불리는 방법으로 자바에서 이런 류의 문제를 풀 때 많이 쓰이며 저도 많이 쓰며 암기를 하고 있는 방식입니다. 

public static int gcd(int a, int b) {

    while (b!=0) {
        int r = a%b;

        a = b;
        b = r;
    }
    return a;
}

함수형으로 쓰고 싶으시다면 위와 같은 방식으로 쓰면 되고 그냥 쓰고 싶다면 아래와 같은 방식으로 쓰면 됩니다.

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

      int A = Integer.parseInt(br.readLine());
      int B = Integer.parseInt(br.readLine());

      while (B != 0) {
         int r = A%B;

          A = B;
          B = r;
      }
        System.out.println(A);
    }
}

 

그럼 이제 최소공배수를 구하는 과정을 써보겠습니다.

코드는 위와 유사합니다. 

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

      int A = Integer.parseInt(br.readLine());
      int B = Integer.parseInt(br.readLine());

      int gcd = gcd(A,B); // 최대공약수

       int result = A*B / gcd;
        System.out.println(result);
    }
    public static int gcd(int A,int B) {
        while (B != 0) {
            int r = A%B;

            A = B;
            B = r;
        }
        return A;
    }
}

 

반응형

'백준 > 알아두면 유용한 것' 카테고리의 다른 글

JAVA substring (간단히)  (0) 2022.08.29
자바 Stringtokenizer 사용법  (0) 2022.08.22
소수를 구하는 법  (0) 2022.08.19