🌴 문제
문제
4 × 3 = 12이다.
이 식을 통해 다음과 같은 사실을 알 수 있다.
3은 12의 약수이고, 12는 3의 배수이다.
4도 12의 약수이고, 12는 4의 배수이다.
두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.
- 첫 번째 숫자가 두 번째 숫자의 약수이다.
- 첫 번째 숫자가 두 번째 숫자의 배수이다.
- 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.
입력
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 10,000이 넘지않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다.
출력
각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.
예제 입력 1 복사
8 16
32 4
17 5
0 0
예제 출력 1 복사
factor
multiple
neither
🌴 문제 분석
package Backjoon;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class day20 {
public static void main(String[] args) throws IOException {
// 배수와 약수
String f = "factor\n";
String m = "multiple\n";
String n = "neither\n";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // BufferedReader 선언
StringBuilder sb = new StringBuilder(); // 인스턴스를 생성할 때 지정된 문자열을 변경 가능. StringBuffer와 거의 같음.
StringTokenizer st; // 공백 단위로 데이터를 가공
while(true) {
st = new StringTokenizer(br.readLine(), " ");
int first = Integer.parseInt(st.nextToken());
int second = Integer.parseInt(st.nextToken());
if (first == 0 && second == 0)
break;
if (second % first == 0) { // 약수
sb.append(f); // append 메서드는 입력된 값을 문자열로 반환해서 덧붙임
}
else if (first % second == 0) { // 배수
sb.append(m);
}
else {
sb.append(n);
}
}
System.out.println(sb);
}
}
-------
8 16
32 4
17 5
0 0
factor
multiple
neither
'Algorithm' 카테고리의 다른 글
Algorithm - 약수들의 합 (0) | 2023.06.28 |
---|---|
Algorithm - 약수 구하기 (0) | 2023.06.27 |
Algorithm - 큰 수 A+B (Java) (0) | 2023.05.18 |
Algorithm - 달팽이는 올라가고 싶다. (Java) (2) | 2023.05.17 |
Algorithm - 분수찾기 (Java) (0) | 2023.05.16 |