본문 바로가기
JAVA 코딩 알고리즘 연습/백준

백준 - 배수와 약수 (5086번) / JAVA (자바) 코딩 알고리즘 연습

by easpop 2025. 5. 4.
728x90
반응형

배수와 약수 성공다국어

한국어   
 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 75911 46550 42644 61.999%

문제

4 × 3 = 12이다.

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

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

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

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

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

입력

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

출력

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

예제 입력 1 복사

8 16
32 4
17 5
0 0

예제 출력 1 복사

factor
multiple
neither

728x90
반응형

오랜만에 문제풀었더니 숫자 전체를 입력받는 다음에 처리하는 법을 까먹어서 헤맸던....;

 

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        List<Integer> a = new ArrayList<>();
        List<Integer> b = new ArrayList<>();

        String result = "";

        while (true) {
            int c = scanner.nextInt();
            int d = scanner.nextInt();

            if (c == 0 && d == 0) {
                break;
            }

            a.add(c);
            b.add(d);

        }

        for (int i = 0; i < a.size(); i++) {
            int e = a.get(i);
            int f = b.get(i);

            if (e < f) {
                if (f % e == 0) {
                    result = "factor";
                } else {
                    result = "neither";
                }
            } else if (e > f) {
                if (e % f == 0) {
                    result = "multiple";
                } else {
                    result = "neither";
                }
            } else {
                result = "neither";
            }

            System.out.println(result);
        }
        
        
    }
}
728x90
반응형

댓글