Cod sursa(job #915134)
| Utilizator | Data | 14 martie 2013 19:14:24 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <cstdio>
#define mod 1999999973
using namespace std;
long long n;
long long p;
long long prelucrare(long long p)
{
if(p==0)
return 1;
long long rezultat=0;
if(p%2==0)
{
rezultat=prelucrare(p/2)%mod;
return (rezultat*rezultat)%mod;
}
else
{
rezultat=prelucrare((p-1)/2)%mod;
return (n*rezultat)%mod;
}
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld %lld",&n,&p);
printf("%lld\n",prelucrare(p));
return 0;
}
