Pagini recente » Cod sursa (job #3353922) | Cod sursa (job #3353928) | Diferente pentru problema/seqval intre reviziile 15 si 5 | Cod sursa (job #2049751) | Cod sursa (job #3357058)
#include <stdio.h>
const int rst = 1999999973;
long long explog(long long x, long long n) {
long long sol = 1;
if (n == 0)
return 1;
for (long long i = 0; (1 << i) <= n; ++i) {
if (((1 << i) & n) > 0)
sol = (sol*x) % rst;
x = (x*x)%rst;
}
return sol;
}
int main(void) {
FILE *in = fopen("lgput.in", "r");
FILE *out = fopen("lgput.out", "w");
long long n, p;
fscanf(in, "%lld %lld", &n, &p);
fprintf(out, "%lld", (explog(n, p)));
return 0;
}