[백준 BOJ] 4504번 배수 찾기 (C++/cpp)

2022. 6. 17. 02:22PS (Program Solving)/BOJ (백준)

문제 설명

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

 

4504번: 배수 찾기

첫째 줄에 n이 주어진다. 다음 줄부터 한 줄에 한 개씩 목록에 들어있는 수가 주어진다. 이 수는 0보다 크고, 10,000보다 작다. 목록은 0으로 끝난다.

www.acmicpc.net

백준 BOJ 4504번 배수 찾기 문제 사진

 

접근 방법 - 약수 판별의 기본 문제

백준의 4504번 문제는 배수의 개념에 관한 기본적인 약수 연산을 통해 해결해야 하는 문제이다.

해당 문제는, 입력값 a, b에 따라 b가 a의 배수인지 판별하여 양식대로 출력해야 하는 문제이다. (자세한 건 문제 설명 참고)

이 문제에선 약수 판별이 핵심인데, 이 연산에서는 나머지 연산자를 기본적으로 사용해야 한다.

이에 대한 명령어를 작성하는 데에 어색하다면, 아래의 설명과 코드를 참고해보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 첫번째 입력값 n을 입력받는다.

 

2) 무한 반복문을 실행하면서, 아래의 연산을 취하도록 한다.

- 두번째 입력값 a를 하나씩 입력받는다. 만일 0을 입력받았다면, 반복문에서 탈출한다.

- 약수 판별 연산을 수행한다.

만일 a가 n으로 나누어 떨어진다면, a는 n의 배수가 된다. 따라서 이 경우엔, 배수일 시에 출력해야 하는 문구를 출력한다.

a가 n으로 나누어 떨어지지 않는다면, a는 n의 배수가 아니다. 따라서 이 경우엔, 배수가 아닐 시에 출력해야 하는 문구를 출력한다.

 

3) 2)의 무한 반복문이 종료했다면, 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 4504번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	int n;
	cin >> n;
	while (1) {
		int a;
		cin >> a;
		if (a == 0) { break; }

		if (a % n == 0) {
			cout << a << " is a multiple of " << n << "." << endl;
		}
		else {
			cout << a << " is NOT a multiple of " << n << "." << endl;
		}
	}
}

 

제출 결과

백준 BOJ 4504번 배수 찾기 문제 C++ 제출 결과

(2022.05.24 백준 4504번 문제 제출 결과)

반응형