Pagini recente » Monitorul de evaluare | Diferente pentru algoritmiada-2009 intre reviziile 26 si 25 | Diferente pentru problema/sirbun intre reviziile 4 si 6 | Cod sursa (job #2778538) | Cod sursa (job #1800256)
#include <iostream>
#include <fstream>
using namespace std;
const long long MOD = 1999999973;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long pow(long long x, long long n) {
long long y = 1;
while (n > 1) {
if (n % 2 == 0) {
x *= x; x %= MOD; n /= 2;
} else {
y *= x; y %= MOD; x *= x; x %= MOD; n = (n - 1) / 2;
}
}
return (x * y) % MOD;
}
int main() {
int N, P; fin >> N >> P;
fout << pow(N, P) << endl;
fin.close();
fout.close();
}