Pagini recente » Cod sursa (job #833158) | Cod sursa (job #80843) | Cod sursa (job #2039400) | Borderou de evaluare (job #2012382) | Cod sursa (job #2336569)
#include <fstream>
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
unsigned int const modulo = 1999999973;
int pow(unsigned int n, unsigned int p, unsigned int left){
if(p == 0){
return 1;
}else if(p == 1){
return (1LL * n * left) % modulo;
}else{
if(p % 2 == 0){
return pow((1LL * n * n) % modulo, p / 2, left);
}else{
return pow((1LL * n * n) % modulo, (p - 1) / 2, (left * n) % modulo);
}
}
}
int main()
{
unsigned int n, p;
in >> n >> p;
out << pow(n % modulo, p, 1);
return 0;
}
//4294967296 1999999973