Cod sursa(job #2228414)
| Utilizator | Data | 3 august 2018 17:01:08 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <cstdio>
const int mod=1999999973;
using namespace std;
long long lg_put(long long x,long long n)
{
if(n==0)
return 1;
if(n==1)
return x%mod;
if(n%2==0)
return lg_put((x*x)%mod,n/2);
return x*lg_put((x*x)%mod,(n-1)/2)%mod;
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
long long n,p;
scanf("%lld %lld",&n,&p);
printf("%lld",lg_put(n,p));
return 0;
}
