백준 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;
}