Cod sursa(job #1249464)
Utilizator | Andrei-Mario Dinu dinuand | Data | 26 octombrie 2014 23:43:36 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <stdio.h>
#define MOD 1999999973
long long ridic(int baza, int exp)
{
if (exp == 0)
return 1;
int tmp = ridic(baza, exp / 2);
if (exp % 2 == 1) return ((tmp * tmp) % MOD * baza) % MOD;
else return (tmp * tmp) % MOD;
}
int main()
{
FILE *fdin = fopen("lgput.in", "r");
FILE *fdout = fopen("lgput.out", "w");
long long N, P;
fscanf(fdin, "%lld%lld", &N, &P);
long long rezultat = ridic(N, P);
fprintf(fdout, "%lld\n", rezultat);
fclose(fdin);
fclose(fdout);
return 0;
}