Pagini recente » Cod sursa (job #726970) | Borderou de evaluare (job #1933021) | Monitorul de evaluare | Cod sursa (job #701482) | Cod sursa (job #449266)
Cod sursa(job #449266)
# include <cstdio>
using namespace std;
# define FIN "lgput.in"
# define FOUT "lgput.out"
long long N, P, M;
long long pow(long long baza, long long putere) {
long long sol = 1, bnd;
for (bnd = 0; (1 << bnd) <= putere >> 1; ++bnd);
for (int i = 0; i <= bnd; ++i) {
if ((putere & (1 << i))) sol = (sol * baza) % M;
baza = (baza * baza) % M;
}
return sol;
}
int main() {
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
M = 1999999973;
scanf("%lld%lld", &N, &P);
printf("%lld\n", pow(N, P));
return 0;
}