Cod sursa(job #416605)
Utilizator | Radulea Adrian adrianradulea | Data | 13 martie 2010 00:05:49 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include<stdio.h>
FILE *f,*g;
long long x,n,z;
inline long long lgput(long long x,long long n)
{ if(n==0) return 1;
else if(n%2) { z=lgput(x,n/2)%1999999973; return (((z*z)%1999999973)*x)%1999999973; }
else { z=lgput(x,n/2)%1999999973; return (z*z)%1999999973; }
}
int main()
{ f=fopen("lgput.in","r"); g=fopen("lgput.out","w");
fscanf(f,"%lld%lld",&x,&n);
fprintf(g,"%lld",lgput(x,n));
fclose(g);
return 0;
}