Pagini recente » Cod sursa (job #2634600) | Cod sursa (job #1587177) | Cod sursa (job #228362) | Cod sursa (job #455077) | Cod sursa (job #2834378)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("igput.in");
ofstream cout("igput.out");
int b,n,p;
int moduloP=1;
void read(){
cin>>b>>n;
//>>p;
moduloP=1999999973;
// while(p>0){
// moduloP*=10;
// p--;
// }
}
long calculate(int base,int exp){
///base cond
if(exp==1){
return base;
}
int res= calculate(base,exp/2);
///recursive function
if((1&exp)){
return (res%moduloP)*((res%moduloP)*base);
}
else{
return (res%moduloP)*(res%moduloP);
}
}
void solve(){
int number=1;
while(n>1){
if(n%2==1){
number*=b;
n--;
}
else{
b*=2;
n/=2;
}
}
cout<<number*b;
}
void calc2(int base,int exp){
int rez=1;
while(exp>1){
if((exp&1)){
exp--;
rez*=(base%moduloP);
}
else{
rez*=((base*base)%moduloP);
exp/=2;
}
}
cout<<rez%moduloP;
}
int main() {
read();
// cout<<calculate(b,n)%moduloP;
// solve();
calc2(b,n);
return 0;
}