Cod sursa(job #171814)
Utilizator | Data | 5 aprilie 2008 10:42:14 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.35 kb |
#include<stdio.h>
#define c 1999999973
long long n,p,r;
void calc(long long p1)
{
if(p1==1)
{
r=n%c;
return;
}
calc(p1/2);
if(p1%2)
r=(r*r*n)%c;
else
r=(r*r)%c;
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld%lld",&n,&p);
n=n%c;
calc(p);
printf("%lld\n",r);
return 0;
}