Algorithm/Baekjoon
Baekjoon 5086 배수와 약수 JAVA
Hunveloper
2025. 9. 13. 17:19

https://www.acmicpc.net/problem/5086
문제
4 × 3 = 12이다.
이 식을 통해 다음과 같은 사실을 알 수 있다.
3은 12의 약수이고, 12는 3의 배수이다.
4도 12의 약수이고, 12는 4의 배수이다.
두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.
- 첫 번째 숫자가 두 번째 숫자의 약수이다.
- 첫 번째 숫자가 두 번째 숫자의 배수이다.
- 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.
입력
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 10,000이 넘지않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다.
출력
각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.
풀이
1. 약수는 A를 B로 나눌때 나머지가 0이라면 약수이다.
2. 배수는 A에 대해서 N을 곱했을때 B가 되는 경우이다.
3. 반대로 말하면 B에 대해서 A로 나눌때 나머지가 0이라면 몫은 N이다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
while(true) {
StringTokenizer st = new StringTokenizer(br.readLine());
int a=Integer.parseInt(st.nextToken()), b=Integer.parseInt(st.nextToken());
if(a+b==0)
break;
if(b%a==0)
bw.write("factor\n");
else if(a%b==0)
bw.write("multiple\n");
else
bw.write("neither\n");
}
bw.close();
}
}728x90