Pagini recente » Diferente pentru utilizator/andycatruna intre reviziile 3 si 5 | Monitorul de evaluare | Cod sursa (job #1528509) | Cod sursa (job #1214483) | Cod sursa (job #1081536)
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
const char infile[] = "lgput.in";
const char outfile[] = "lgput.out";
ifstream fin(infile);
ofstream fout(outfile);
const long long MOD = 1999999973;
const int oo = 0x3f3f3f3f;
inline long long lgPow(const long long &N, const long long &P) {
if(P == 1)
return N % MOD;
long long aux = (N * N) % MOD;
if(N % 2)
return (N * lgPow(aux, (P - 1)/2)) % MOD;
return lgPow(aux, P / 2);
}
int main() {
long long N, P;
fin >> N >> P;
fout << lgPow(N % MOD, P) << '\n';
fin.close();
fout.close();
return 0;
}