Cod sursa(job #1732742)
Utilizator | Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 | Data | 22 iulie 2016 14:58:24 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include <stdio.h>
const int mod=1999999973;
long long lgput(int n,int p,long long ac)
{
if(!n)
return ac;
if(p&1)
ac=(ac*n)%mod;
return lgput(n*n,p/2,ac);
}
int main()
{
FILE *fin,*fout;
fin=fopen("lgput.in","r");
fout=fopen("lgput.out","w");
int n,p;
fscanf(fin,"%d%d",&n,&p);
fprintf(fout,"%lld",lgput(n,p,1));
fclose(fin);
fclose(fout);
return 0;
}