Cod sursa(job #3298160)
Utilizator | Data | 27 mai 2025 16:26:32 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
#define MOD 1999999973
#define ull unsigned long long
ull test(ull N, ull P) {
if (P == 0)
return 1;
if (P % 2)
return N * test((N * N) % MOD, (P - 1) / 2) % MOD;
return test((N * N) % MOD, P / 2) % MOD;
}
int main() {
FILE *input = fopen("lgput.in", "r");
FILE *output = fopen("lgput.out", "w");
ull N, P;
fscanf(input, "%d %d", &N, &P);
fprintf(output, "%d", test(N, P));
}