Cod sursa(job #171812)
Utilizator | Data | 5 aprilie 2008 10:41:20 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.33 kb |
#include<stdio.h>
#define c 1999999973
int n,p,r;
void calc(int 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("%d%d",&n,&p);
n=n%c;
calc(p);
printf("%d\n",r);
return 0;
}