Cod sursa(job #466830)
Utilizator | Data | 27 iunie 2010 17:25:53 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.38 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;
for(;p;p/=2)
b[++nm]=p%2;
long long rez=1;
for(;nm;--nm){
rez*=rez;
if(b[nm])
rez*=n;
}
printf("%lld\n",rez%mod);
return 0;}