C++/백준 C++

[C/C++] 백준 1312번 소수

CE : 하랑 2023. 12. 16. 17:30

 

 

 

 

코드

#include <iostream>

using namespace std;

// int* : 포인터, int& : 레퍼런스
int cal(int* _a, const int _b, const int _n, int& _result)
{

	if (*_a % _b == 0){ // a가 b로 나눠어 떨어질 경우의 답은 0
		return _result;
	}

	if (*_a > _b) { // 소숫점 아래 N번째 자리수를 구하기 위해 소수점이 아닌 부분은 미리 연산해 뺀다.
		*_a = *_a % _b;
	}

	for (int i = 0; i < _n; i++) { // n 만큼의 자리수까지 나누기 연산 진행
		*_a = *_a * 10;
		_result = static_cast<int>(*_a / _b); 
		*_a = *_a % _b;
	}

	return _result;
}

int main()
{
	cin.tie(0); // 코드를 작성하면 입출력 속도가 빨라진다. -> C와 C++ 표준 stream의 동기화를 비활성화
	cout.tie(0); // C++의 입출력인 cin, cout만 사용하도록 주의해야합니다.

	int a, b, n;
	int result = 0;

	cin >> a >> b >> n;

	cout<<cal(&a, b, n, result);
}