Cod sursa(job #212362)
| Utilizator | Data | 5 octombrie 2008 11:18:11 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include<stdio.h>
long long xr,d,n,m;
long long rest(long long n,long long m)
{long long z;
if(m==0)return 1;
else
if(m%2) return (rest(n,m-1)*xr)%d;
else
{
z=rest(n,m/2);
return (z*z)%d;
}
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%ld%ld",&n,&m);
d=1999999973ll;
xr=n%d;
printf("%lld\n",rest(n,m));
return 0;
}
