Cod sursa(job #466831)

Utilizator paul_gabryelPaul Buda paul_gabryel Data 27 iunie 2010 17:28:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb

#include<cstdio>
#include<fstream>

using namespace std;

#define nn 50
#define mod 1999999973

int b[nn];
long long n,p;

int main ()
{

ifstream in ("lgput.in");
freopen("lgput.out","w",stdout);
in>>n>>p;
in.close();
int nm=0;
n%=mod;
for(;p;p/=2)
b[++nm]=p%2;
long long rez=1;
for(;nm;--nm){
rez=(rez*rez)%mod;
if(b[nm])
rez=(rez*n)%mod;
}
printf("%lld\n",rez%mod);

return 0;}