Cod sursa(job #1483663)
Utilizator | Indricean Mihai mike93 | Data | 9 septembrie 2015 18:36:44 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <stdio.h>
#define M 1999999973
long long put(long long n, long long p) {
if(p == 0) {
return 1;
}
long long res;
res = (put(n, p/2) * put(n, p/2)) % M;
if(p % 2 == 1) {
res = (res * n) % M;
}
return res;
}
int main() {
FILE* fin = fopen("lgput.in", "r");
long long n, p;
fscanf(fin, "%lld %lld\n", &n, &p);
fclose(fin);
long long res = put(n, p);
FILE* fout = fopen("lgput.out", "w");
fprintf(fout, "%ld\n", res);
fclose(fout);
return 0;
}