728x90

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

풀이

수학시간에 배웠던 최대공약수와 최소공배수 구하는 방법을 그대로 구현하였다.

코드

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        st = new StringTokenizer(br.readLine());
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());

        int divNum = 2;
        int G = 1, V = 1; // G : 최대공약수, V : 최소공배수
        while(divNum <= A && divNum <= B) {
            if(A % divNum == 0 && B % divNum == 0) {
                A /= divNum;
                B /= divNum;
                G *= divNum;
                V *= divNum;
            } else divNum++;
        }
        V *= A * B;

        sb.append(G).append("\n").append(V);
        System.out.println(sb);
    }
}

틀린 부분이 있다면 정정해주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!

728x90

+ Recent posts