C++

[백준 알고리즘] 5086번 : 배수와 약수, c++

2022. 2. 10. 15:15

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

 

5086번: 배수와 약수

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

www.acmicpc.net

c++로 백준 5086번 문제를 풀어보겠다.

 

 

 

 

 

문제

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

 

 

 

 

<문제 풀이>

1. 반복문을 반복하며 주어진 문제를 수행한다.

 

- 반복문 코드 내용 -

bool 형의 b1, b2를 false로 선언한다.

int 형의 A와 B를 입력받는다.

입력받은 A와 B가 모두 0이라면 반복문을 종료한다.

만약 B가 A로 나누어 떨어진다면 b1에 true를 저장한다.

만약 A가 B로 나누어 떨어진다면 b2에 true를 저장한다.

if-else 문을 사용해, 만약 b1이 true라면 "factor"을 출력, 만약 b2이 true라면 "multiple"을 출력, 둘 다 만족하지 못한다면 "neither"을 출력하도록 한다.

 

 

 

 

코드는 다음과 같다.