본문 바로가기

컴퓨터/백준 알고리즘

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

문제 출처: www.acmicpc.net/problem/5086

 

5086번: 배수와 약수

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

www.acmicpc.net

1. 코드

#include <iostream>

using namespace std;

int main(void)
{
	int n1, n2;

	while (1)
	{
		cin >> n1 >> n2;
		if (n1 == 0 && n2 == 0)
			break;
		else if (n2 % n1 == 0)
			cout << "factor" << endl;
		else if (n1 % n2 == 0)
			cout << "multiple" << endl;
		else
			cout << "neither" << endl;
	}
	return 0;
}

(실행)

2. 풀이

이 문제는 간단하다. 무한 루프를 만들어주고, 변수 두 개를 입력받는데 두 개의 변수가 0일 경우 바로 탈출을 시켜준다. 왜냐하면 문제에서 마지막 변수의 값이 0일 경우 종료하기 때문이다. 그리고 % 연산자를 이용해서 문제에서 요구하는 배수와 약수 관계를 확인한 후 해당하는 문구를 출력해주면 된다.