Pagini recente » Cod sursa (job #1752686) | Cod sursa (job #38518) | Cod sursa (job #2523046) | Cod sursa (job #1487469) | Cod sursa (job #3221333)
#include <bits/stdc++.h>
using namespace std;
int MOD = 1999999973;
long long exp(long long N, long long P) {
long long ans = 1;
while (P > 0) {
// Cat timp nu sunt pe cazul N ^ 0
if (P % 2 == 0) {
// Sunt pe cazul N ^ P = (N ^ 2) ^ (P / 2)
N = (N * N) % MOD;
P = P / 2;
} else {
// Sunt pe cazul N ^ P = (N ^ 2) ^ ((P - 1) / 2) * N
// N ul extra se duce in answer
ans = (ans * N) % MOD;
// Restul devine la fel ca in cazul unde P este par
N = (N * N) % MOD;
P = (P - 1) / 2;
}
}
return ans;
}
int main() {
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
int a, b;
fin >> a >> b;
fout << exp(a, b);
return 0;
}