Cod sursa(job #763637)
| Utilizator | Data | 2 iulie 2012 19:19:28 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.39 kb |
#include <stdio.h>
const int MODULO = 1999999973;
int n, p, result, i;
FILE *in, *out;
int main()
{
in = fopen("lgput.in", "r");
out = fopen("lgput.out", "w");
fscanf(in, "%d %d", &n, &p);
result = 1;
for(i = 0; (1 << i) <= p; i++)
{
if((1 << i) & p)
result = (result * n) % MODULO;
n = (n * n) % MODULO;
}
fprintf(out, "%d\n", result);
fclose(in);
fclose(out);
return 0;
}
