Cod sursa(job #935236)
| Utilizator | Data | 2 aprilie 2013 13:10:35 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include <stdio.h>
#include <stdlib.h>
#define MOD 1999999973
long long square(n,p)
{
if (p == 1) return n;
if (!(n % 2)) return square(n*n,p/2);
else return n*square(n*n, (p-1)/2);
}
int main()
{
FILE *f = fopen("lgput.in","r");
FILE *g = fopen("lgput.out","w");
long long sol;
int n, p;
fscanf(f,"%d %d", &n, &p);
sol = square(n,p);
fprintf(g,"%lld", sol % MOD);
fclose(f);
fclose(g);
return 0;
}
