minghxx.blog
  • [백준 / 자바] 5086번 배수와 약수
    2023년 12월 15일 09시 54분 49초에 업로드 된 글입니다.
    작성자: 민발자
    728x90

    문제

    4 × 3 = 12이다.

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

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

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

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

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

     

    입력

    입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 10,000이 넘지 않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다.

    - 예제 입력

    8 16
    32 4
    17 5
    0 0

     

    출력

    각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.

    - 예제 출력

    factor
    multiple
    neither

     

    풀이

    1. 모두 0이면 종료

    2. a를 b로 나눴을 때 나머지가 0이면 multiple 

    3. b를 a로 나눴을 때 나머지가 0이면 factor

    4. 나머지가 있으면 neither

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    public class Main {
        public static void main(String[] args) throws IOException {
        
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
            while (true){
                StringTokenizer st = new StringTokenizer(br.readLine());
    
                int a =  Integer.parseInt(st.nextToken());
                int b = Integer.parseInt(st.nextToken());
    
                if(a == 0 && b == 00) {
                    break;
                }
    
                if(a % b == 0) {
                    System.out.println("multiple");
                } else if (b % a == 0) {
                    System.out.println("factor");
                } else {
                    System.out.println("neither");
                }
                
            }
            
        }
    }

     

     

     

     

    728x90
    댓글