Cod sursa(job #2375549)
Utilizator | Andrei Bancila ardutgamer | Data | 8 martie 2019 10:32:00 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <cstdio>
#define MOD 1999999973
using namespace std;
inline long long lgput(long long n,long long p)
{
if(p == 0)
return 1;
if(p == 1)
return n%MOD;
if(p&1)
return n*lgput((n*n)%MOD,(p-1)>>1)%MOD;
else
return lgput((n*n)%MOD,p>>1)%MOD;
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
long long x,y;
scanf("%lld%lld",&x,&y);
printf("%lld",lgput(x,y));
return 0;
}