👀 문제
https://www.acmicpc.net/problem/5086
👊 도전
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. 설명
- 종료 조건이 들어올 때 까지 무한 반복한다.
- 입력 갯수를 알 수 없으므로 while문을 통해 무한 반복한다.
- 0 0이 들어오면 break문으로 종료한다.
- a, b를 크기 비교한 후 조건에 맞게 나눈다
- a>b이면 a가 b의 약수일 수는 없다.
- a가 b의 배수인지 체크한 후, 맞다면 “multiple”을, 아니라면 “neither”을 리턴한다.
- a<=b인 경우, a는 b의 배수을 수는 없다.
- b%a==0인지 확인 후 맞다면 “factor”, 아니라면 “neither”을 리턴한다.