Cod sursa(job #1515969)
| Utilizator | Data | 2 noiembrie 2015 15:49:21 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <iostream>
#include <cstdio>
#define Mod 1999999973
using namespace std;
long long b,pw;
int lgpow(long long b,long long pw)
{
if(pw==1)
return b;
long long p=lgpow(b,pw/2)%Mod;
return ((((p*p)%Mod)*(pw%2 ? b : 1)))%Mod;
}
int main()
{
freopen("lgput.in","rt",stdin);
freopen("lgput.out","wt",stdout);
cin>>b>>pw;
if(!pw)
cout<<1<<'\n';
else
cout<<lgpow(b,pw);
return 0;
}
