정신과 시간의 방
카테고리
작성일
2024. 8. 6. 12:56
작성자
risehyun
  • 문제

 

  • 풀이
#include<iostream>

using namespace std;

void run(int x, int y)
{
	// 1. x가 y의 약수이다.
	if (y % x == 0)
	{
		cout << "factor" << '\n';
	}
	// 2. x가 y의 배수이다.
	else if (x % y == 0)
	{
		cout << "multiple" << '\n';
	}
	// 3. 앞의 두 경우에 전부 해당하지 않는 경우
	else
	{
		cout << "neither" << '\n';
	}
}

int main()
{
	int x = 0, y = 0;

	while (true)
	{
		cin >> x >> y;

		if ((x == 0) && (y == 0))
		{
			break;
		}

		run(x, y);
	}

	return 0;
}

 

  • 메모
    나머지 연산을 사용해서 입력받은 값이 첫 번째 값과 두 번째 값의 약수 혹은 배수 관계에 있는지 판별한다.
    서로 약수 관계인 경우 두 번째 값에 첫 번째 값을 나머지 연산한 결과가 남지 않고 딱 맞아떨어져야 한다.
    서로 배수 관계인 경우에도 첫 번째 값에 두 번째 값을 나머지 연산한 결과가 남지 않아야 한다.