Cod sursa(job #2139870)
| Utilizator | Data | 22 februarie 2018 20:41:45 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <stdio.h>
#define MOD 1999999973
long long N, P;
long long power(long long N, long long P) {
if (P == 0)
return 1;
long long temp = power(N, (P >> 1)) % MOD;
if (P % 2 == 0)
return (temp * temp) % MOD;
else
return (N * temp * temp) % MOD;
}
int main(void) {
FILE *fin = fopen("lgput.in", "r");
FILE *fout = fopen("lgput.out", "w");
fscanf(fin, "%llu%llu", &N, &P);
fclose(fin);
fprintf(fout, "%llu", power(N, P));
fclose(fout);
return 0;
}
