Cod sursa(job #412372)
| Utilizator | Data | 5 martie 2010 15:39:47 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.37 kb |
#include <cstdio>
long long n,p,imp=1999999973;
long long pute(int n,int p)
{
if (p==1)
return n;
if (p&1)
return (pute(n,(p+1)/2)*pute(n,(p-1)/2))%imp;
else
return (pute(n,p/2)*pute(n,p/2))%imp;
}
int main()
{
freopen ("lgput.in","r",stdin);
freopen ("lgput.out","w",stdout);
scanf("%lld%lld",&n,&p);
printf("%lld",pute(n,p));
return 0;
}
