Pagini recente » Cod sursa (job #2205595) | Cod sursa (job #206496) | Cod sursa (job #1236146) | Cod sursa (job #2117780) | Cod sursa (job #2834400)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
int b,n,p;
int moduloP;
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){
unsigned long long int rez=1;
while(exp>=1){
if((exp&1)==1){
rez=(1LL * rez * base)%moduloP;
exp--;
}
else{
base=(1LL*base*base)%moduloP;
exp/=2;
}
}
cout<<rez;
}
int main() {
read();
// cout<<calculate(b,n)%moduloP;
// solve();
calc2(b,n);
return 0;
}