Mai intai trebuie sa te autentifici.
Cod sursa(job #1363514)
Utilizator | Data | 27 februarie 2015 00:25:38 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <stdio.h>
#define a 1999999973
long power(int number, int pow)
{
if (pow == 0)
return 1;
if (pow == 1)
return number;
int tmp = pow / 2;
if (pow % 2 == 1) {
int rez = power((number * number), tmp);
return (number * rez * rez);
}
return power((number * number), tmp);
}
int main(void)
{
FILE *f_in = fopen("lgput.in", "rt");
FILE *f_out = fopen("lgput.out", "wt");
int num, pow;
fscanf(f_in, "%d %d", &num, &pow);
fprintf(f_out, "%d", (int) (power(num, pow) % a));
return 0;
}