[JAVA/백준] 수학 3: 배수와 약수

👀 문제

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

👊 도전

1. 설계

  1. if문을 이용하여 a, b를 조건에 맞게 비교한다.

2. 구현 (성공 코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.util.Scanner;
/**
 * @author HEESOO
 *
 */
public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input=new Scanner(System.in);
		int a,b;
		while(true) {
			a=input.nextInt();
			b=input.nextInt();
			if(a==0&&b==0) break;
			
			if(a>b) {
				if(a%b==0) {
					System.out.println("multiple");
				}
				else {
					System.out.println("neither");
				}
			}
			else {
				if(b%a==0) {
					System.out.println("factor");
				}
				else {
					System.out.println("neither");
				}
			}
		}
	}

}

 

3. 결과

실행결과 🤟 성공 🤟
아래의 컴파일 에러는 class명을 Main으로 하지 않아 발생했다.

4. 설명

  1. 종료 조건이 들어올 때 까지 무한 반복한다.
    • 입력 갯수를 알 수 없으므로 while문을 통해 무한 반복한다.
    • 0 0이 들어오면 break문으로 종료한다.
  2. a, b를 크기 비교한 후 조건에 맞게 나눈다
    • a>b이면 a가 b의 약수일 수는 없다.
    • a가 b의 배수인지 체크한 후, 맞다면 “multiple”을, 아니라면 “neither”을 리턴한다.
    • a<=b인 경우, a는 b의 배수을 수는 없다.
    • b%a==0인지 확인 후 맞다면 “factor”, 아니라면 “neither”을 리턴한다.

👏 해결 완료!