Cod sursa(job #1554418)
| Utilizator | Data | 21 decembrie 2015 12:33:15 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <cstdio>
#define mod 1999999973
using namespace std;
long long p,r=1,n;
int putere(int r,int p,int n)
{
while(p>1)
{
if(p%2 == 1)
{
r=(r*n)%mod;
p--;
}
else
{
n=(n*n)%mod;
p=p/2;
}
}
if(r==1)
r=r*(n%mod);
return r;
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld%lld",&n,&p);
r=putere(r,p,n);
printf("%lld",r);
return 0;
}
