Cod sursa(job #161969)
Utilizator | Data | 19 martie 2008 08:51:31 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.34 kb |
#include<stdio.h>
#define I "lgput.in"
#define O "lgput.out"
#define m 1999999973
long long n,p,s,f;
int main()
{
FILE *fin=fopen(I,"r");
FILE *gout=fopen(O,"w");
fscanf(fin,"%lld%lld",&n,&p);
s=1;
f=n;
while(p)
{
if(p&1)
s=(s*f)%m;
f=(f*f)%m;
p/=2;
}
fprintf(gout,"%lld",s);
fcloseall();
return 0;
}