와챠의 우당탕탕 코딩 일기장
[백준]정수론 및 조합론/배수와 약수/5086 풀이 JAVA 본문
반응형
문제
4 × 3 = 12이다.
이 식을 통해 다음과 같은 사실을 알 수 있다.
3은 12의 약수이고, 12는 3의 배수이다.
4도 12의 약수이고, 12는 4의 배수이다.
두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.
- 첫 번째 숫자가 두 번째 숫자의 약수이다.
- 첫 번째 숫자가 두 번째 숫자의 배수이다.
- 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.
입력
입력은 여러 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 10,000이 넘지않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다.
두 수가 같은 경우는 없다.
출력
각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을,
둘 다 아니라면 neither를 출력한다.
풀이(JAVA)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package test01; | |
import java.io.*; | |
import java.util.StringTokenizer; | |
public class Main { | |
static String find(int a, int b) { | |
// a가 b의 약수 | |
if (b % a == 0) return "factor"; | |
// a가 b의 배수 | |
else if (a % b == 0) return "multiple"; | |
// 둘 다 아님 | |
return "neither"; | |
} | |
public static void main(String[] args) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); | |
StringTokenizer st; | |
// 입력 | |
while (true) { | |
st = new StringTokenizer(br.readLine()); | |
int a = Integer.parseInt(st.nextToken()); | |
int b = Integer.parseInt(st.nextToken()); | |
if (a == 0 && b == 0) break; // 종료 조건 | |
String str = find(a, b); // 관계 구하기 | |
// 출력 | |
bw.write(str + "\n"); | |
} | |
bw.flush(); | |
bw.close(); | |
br.close(); | |
} | |
} |

반응형
'코딩 일기장 > 백준' 카테고리의 다른 글
[백준]정수론 및 조합론/최대공약수와 최소공배수/2609 풀이 JAVA (0) | 2021.02.16 |
---|---|
[백준]정수론 및 조합론/약수/1037 풀이 JAVA (0) | 2021.02.16 |
[백준]그리디 알고리즘/주유소/13305 풀이 JAVA (0) | 2021.02.15 |
[백준]그리디 알고리즘/잃어버린 괄호/1541 풀이 JAVA (0) | 2021.02.15 |
[백준]그리디 알고리즘/ATM/11399 풀이 JAVA (0) | 2021.02.14 |