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
'[JAVA]백준 알고리즘 > 단계별 - 정수론 및 조합론' 카테고리의 다른 글
[JAVA]백준 알고리즘 3036번 : 링 (4) | 2022.12.21 |
---|---|
[JAVA]백준 알고리즘 2981번 : 검문 (0) | 2022.12.21 |
[JAVA]백준 알고리즘 1934번 : 최소공배수 (2) | 2022.12.20 |
[JAVA]백준 알고리즘 1037번 : 약수 (0) | 2022.12.17 |
[JAVA]백준 알고리즘 5086번 : 배수와 약수 (0) | 2022.12.17 |