본문 바로가기
Algorithm

[백준 알고리즘 JAVA] 5086번 배수와 약수

by wook99 2024. 4. 13.

https://www.acmicpc.net/problem/5086

 

5086번: 배수와 약수

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

www.acmicpc.net

문제

4 × 3 = 12이다.

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

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

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

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

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

입력

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

출력

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

 

 

핵심

1.scanner를 통해 int형 변수 두개를 입력받는다.

2. 0이들어오면 무한반복문을 빠져나간다.

3. num1이 num2의 약수이려면 num2에서 num1로 나눴을때 나누어 떨어져야한다.

4. num1이 num2의 배수이려면 num1에서 num2로 나누었을때 나누어 떨어져야한다.

5.그외에는 neither출력

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        while(true){
            int num1 = scanner.nextInt();
            int num2 = scanner.nextInt();

            if(num1 == 0 && num2 == 0){
                break;
            }

            if(num2%num1==0){
                System.out.println("factor");
            }else if(num1 % num2 == 0){
                System.out.println("multiple");
            }else{
                System.out.println("neither");
            }

        }
    }
}