와챠의 우당탕탕 코딩 일기장

[백준]정수론 및 조합론/배수와 약수/5086 풀이 JAVA 본문

코딩 일기장/백준

[백준]정수론 및 조합론/배수와 약수/5086 풀이 JAVA

minWachya 2021. 2. 16. 14:05
반응형

문제

4 × 3 = 12이다.

이 식을 통해 다음과 같은 사실을 알 수 있다.

3은 12의 약수이고, 12는 3의 배수이다.

4도 12의 약수이고, 12는 4의 배수이다.

두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.

  1. 첫 번째 숫자가 두 번째 숫자의 약수이다.
  2. 첫 번째 숫자가 두 번째 숫자의 배수이다.
  3. 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.

 

입력

입력은 여러 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 10,000이 넘지않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다.

두 수가 같은 경우는 없다.

 

출력

각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을,

둘 다 아니라면 neither를 출력한다.

 

풀이(JAVA)

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();
}
}
view raw Main.java hosted with ❤ by GitHub

반응형
Comments