Pagini recente » Cod sursa (job #2272844) | Cod sursa (job #2025932) | Cod sursa (job #1799893) | Cod sursa (job #2473714) | Cod sursa (job #1366263)
#include <iostream>
#include <fstream>
// n ^ p = mul for each bit i: n^(2^i), when i = 1
// (a*b*c)%d = a%d * b%d * c%d
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
unsigned int bx = 1999999973;
unsigned int n, p;
int main()
{
fin >> n >> p;
long long sol = 1, a = n;
unsigned int i = 0;
long long mask = 1;
do{
if((mask &p) > 0) sol = (sol*a)%bx;
a = (a * a)%bx;
mask<<=1;
}while(mask <= p);
fout << sol << endl;
return 0;
}