Cod sursa(job #1692608)
Utilizator | Data | 21 aprilie 2016 11:54:38 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <iostream>
#include <cstdio>
#define MOD 1999999973
using namespace std;
long long k,i,m,x,j;
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld%lld",&x,&m);
i=x%MOD;
for(k=m,j=1;k!=1;)
{
if(k%2==0)
{
i*=i;
i%=MOD;
k/=2;
}
else
{
j*=i;
j%=MOD;
k--;
}
}
printf("%lld\n",((j%MOD)*(i%MOD)%MOD));
return 0;
}