반응형

두 수가 주어지면, 두 수들의 최대 공약수와 최소 공배수를 찾는 문제이다.
굉장히 쉬운 문제인데… 사실 난 실력이 부족해서인지 한 10분 가까이 해맸다… ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그래서 사실 블로그에 안 올리려고 했는데, 저처럼 해매시는 분이 혹시나 계실 수도 있으니 공유해봅니다
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String str = br.readLine();
int a = Integer.parseInt(str.split(" ")[0]);
int b = Integer.parseInt(str.split(" ")[1]);
int GCD=0; // 최대공약수
int LCM=0; // 최소공배수
// 최대공약수 구하기
if (a > b) { // b가 더 작다면
for (int i=b; i>=0; i--) { // b부터 1씩 감소하면서
if (a%i==0 && b%i ==0) { // a와 b 동시에 약수가 되는 수를 찾으면
GCD = i; // GCD에 저장한다
break;
}
}
} else { // a가 더 작다면
for (int i=a; i>=0; i--) { // a부터 1씩 감소하면서
if (a%i==0 && b%i ==0) { // a와 b 동시에 약수가 되는 수를 찾으면
GCD = i; // GCD에 저장한다
break;
}
}
}
// 최소공배수 구하기
if (a > b) { // b가 더 작다면
int i = 1; // 1부터 차례로 곱하면서
while (true) {
if ((b*i)%a == 0) { // a의 배수가 되는 수를 처음 찾으면
LCM = b*i; // LCM에 저장한다
break;
}
i++;
}
} else { // a가 더 작다면
int i = 1; // 1부터 차례로 곱하면서
while (true) {
if ((a*i)%b == 0) { // b의 배수가 되는 수를 처음 찾으면
LCM = a*i; // LCM에 저장한다
break;
}
i++;
}
}
System.out.println(GCD);
System.out.print(LCM);
br.close();
}
}
로그인
www.acmicpc.net
작성일자: 2023-09-09
'컴퓨터 공학 > 백준' 카테고리의 다른 글
[백준] JAVA 자바 : 소수 찾기 (1978번) (0) | 2024.01.21 |
---|---|
[백준] JAVA 자바 : 최소공배수 (1934번) (0) | 2024.01.21 |
[백준] JAVA 자바 : 접미사 배열 (11656번) (0) | 2024.01.21 |
[백준] JAVA 자바 : 네 수 (10824번) (0) | 2024.01.21 |
[백준] JAVA 자바 : ROT13 (11655번) (0) | 2024.01.20 |