Cod sursa(job #2033270)
Utilizator | Dobos Paul Dobos | Data | 6 octombrie 2017 15:48:20 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <stdio.h>
#include <stdlib.h>
const long MOD = 1999999973;
int Lgpower(int x,int n,int y){
if(n <= 1)
return y;
x = Lgpower(x,n/2,y);
x = (x * x) % MOD;
if(n % 2 == 1)
x = (x * y) % MOD;
return x;
}
int main()
{
int n,x;
FILE *fin;
FILE *fout;
fin = fopen("lgput.in","r");
fout = fopen("lgput.out","w");
fscanf(fin , "%d %d", &x, &n);
int solution = Lgpower(x,n,x);
fprintf(fout,"%d", solution);
fclose(fin);
fclose(fout);
return 0;
}