Cod sursa(job #352720)
| Utilizator | Data | 3 octombrie 2009 12:22:20 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<stdio.h>
#define MODULO 1999999973
long x;
long exp(long n)
{
long p;
if (n==1) return (x%MODULO);
else;
if (n%2==0)
{p=exp(n/2);
return (((p%MODULO)*(p%MODULO))%MODULO);
}
else;
if (n%2==1)
{p=exp(n/2);
return (((((x%MODULO)*(p%MODULO))%MODULO)*(p%MODULO))%MODULO);
}
}
int main()
{
long n;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%ld%ld",&x,&n);
printf("%ld",exp(n));
return 0;
}