문제
4 × 3 = 12이다.
이 식을 통해 다음과 같은 사실을 알 수 있다.
3은 12의 약수이고, 12는 3의 배수이다.
4도 12의 약수이고, 12는 4의 배수이다.
두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.
1. 첫 번째 숫자가 두 번째 숫자의 약수이다.
2. 첫 번째 숫자가 두 번째 숫자의 배수이다.
3. 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.
입력
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 10,000이 넘지않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다.
출력
각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.
풀기 전 로직 생각
- 두 수를 입력받을 num1, num2를 int형으로 받는다.
- 여러 테스트 케이스로 이루어져있고 마지막은 0 0이므로 반복문을 항상 true로 해주고 두 수를 0 0 일때 반복문을 끝낸다.
- 약수를 판별하는 방법은 큰 수에서 작은수를 나눴을때 나머지가 0일때 약수이다. 그러므로 num2를 num1로 나눈 나머지가 0이면 factor를 출력.
- 배수는 첫번째 숫자가 두번째숫자의 배수일때니까 첫번째 숫자가 크다는 것이므로 num1을 num2로 나눈 나머지가 0이면 multiple를 출력
- 둘다 아니면 neigher를 출력시킨다.
코드
#include <iostream>
using namespace std;
int main(){
int num1, num2; //입력받을 두 수
while (1) {
cin >> num1 >> num2;
if(num1 == 0 && num2 ==0)
return 0;
else if (num2 % num1 == 0)
cout << "factor" << "\n";
else if (num1 % num2 == 0)
cout << "multiple" << "\n";
else
cout << "neither" << "\n";
}
}
결과
끝 히힛
'백준' 카테고리의 다른 글
[백준] 9506번 - 약수들의 합 C++ (0) | 2024.05.20 |
---|---|
[백준] 2501번 - 약수 구하기 C++ (0) | 2024.05.18 |
[백준] 2869번 - 달팽이는 올라가고 싶다 C++ (0) | 2024.05.17 |
[백준] 1193번 - 분수찾기 C++ (0) | 2024.05.14 |
[백준] 2903번 - 중앙 이동 알고리즘 C++ (0) | 2024.05.13 |