백준 1629 c++

magicdrill·2024년 2월 29일

백준 문제풀이

목록 보기
61/673

백준 1629 c++

#include <iostream>
#include <climits>

using namespace std;

int A, B, C;

int input(int lower, int upper)
{
	//cout << "input()" << endl;
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

long long int recursive_pow(long long int temp1)
{
	long long int temp2;
	if (temp1 == 1)
	{
		return A % C;
	}
	else
	{
		;
	}
	temp2 = recursive_pow(temp1 / 2) % C;
	if (temp1 % 2 == 0)
	{
		return temp2 * temp2 % C;
	}
	else
	{
		return temp2 * temp2 % C * A % C;
	}
}

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	A = input(1, INT_MAX);
	B = input(1, INT_MAX);
	C = input(1, INT_MAX);
	cout << recursive_pow(B) << "\n";

	return 0;
}

0개의 댓글