티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 5086번 배수와 약수

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

 

5086번: 배수와 약수

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

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

각 테스트 케이스 마다 2개의 숫자가 주어짐

첫 번째 숫자가 두 번째 숫자의 약수이면 factor, 배수이면 multiple, 둘 다 아니면 neither 를 출력

마지막 줄에는 0 이 2개 주어짐 (== 종료)

 

2. 풀이

나머지 연산(%)만 알면 쉽게 풀 수 있는 문제입니다.

정확하게 배수 or 약수로 떨어지는 경우 나머지 연산의 결과가 0 이 됩니다.

 

나머지 연산이 0 이 되면 factor 혹은 multiple 을 출력해주고,

둘 다 아니면 neither 를 출력하면 됩니다.

 

3. 코드

#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
/*
5086_배수와 약수
1112kb	0ms
*/
#include <cstdio>

int main() {
#ifdef _WIN32
	freopen("input.txt", "r", stdin);
#endif // _WIN32
	int a, b;

	while (1) {
		scanf("%d %d", &a, &b);
		if (!a && !b) break;

		if (!(b % a)) printf("factor\n");
		else if (!(a % b)) printf("multiple\n");
		else printf("neither\n");
	}

	return 0;
}

* 0 는 false, 1 은 true 입니다.

728x90
반응형
댓글