[JAVA]백준 알고리즘/단계별 - 정수론 및 조합론
[JAVA]백준 알고리즘 2609번 : 최대공약수와 최소공배수
코린이J
2022. 12. 18. 20:14
728x90
2609번: 최대공약수와 최소공배수
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
www.acmicpc.net
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
풀이
수학시간에 배웠던 최대공약수와 최소공배수 구하는 방법을 그대로 구현하였다.
코드
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