1. 문제 상세
https://www.acmicpc.net/problem/5086
2. 문제 접근
먼저 뒤의 수를 앞의 수로 나누어 나누어 떨어진다면 factor 를 출력한다.
아닌 경우 앞의 수를 뒤의 수로 나누어 나누어 떨어진다면 multiple 을 출력하자.
위의 경우가 모두 아닐 때 neither 를 출력한다.
무한 반복문을 통해 수를 계속 입력받고, 입력받은 두 수가 모두 0이면 루프를 빠져나오자.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int a, b;
while(true) {
cin >> a >> b;
if(a == 0 && b == 0) break;
else if(b % a == 0) cout << "factor" << endl;
else if(a % b == 0) cout << "multiple" << endl;
else cout << "neither" << endl;
}
}
정수형 변수 a, b 를 선언한다.
while문에 조건을 ture 로 주어 무한반복하도록 한다.
반복문에서는 cin 으로 정수 두 개를 입력받아 a 와 b 에 저장한다.
if문으로 a 와 b 가 모두 0인 경우 break 를 통해 반복문을 빠져나온다.
else if문으로 b 를 a 로 나눈 나머지가 0인 경우 cout 으로 factor 를 출력한다.
else if문으로 a 를 b 로 나눈 나머지가 0인 경우 cout 으로 multiple 을 출력한다.
그 외의 경우 cout 으로 neither 를 출력한다.
4. 성능 확인
5. 마무리
.
'백준 - 단계별로 풀어보기 > 약수, 배수와 소수' 카테고리의 다른 글
[백준] 11653번 : 소인수분해 | C++ (0) | 2023.10.19 |
---|---|
[백준] 2581번 : 소수 | C++ (1) | 2023.10.19 |
[백준] 1978번 : 소수 찾기 | C++ (0) | 2023.10.19 |
[백준] 9506번 : 약수들의 합 | C++ (0) | 2023.10.19 |
[백준] 2501번 : 약수 구하기 | C++ (0) | 2023.10.19 |