```
int main(){
int a,b,p;
cin>>a>>b>>p;
int res=1%p;
while(b){
if(b&1) res=res*1ll*a%p;
a=a*1ll*a%p;
b>>=1;
}
cout<<res<<endl;
}
```
快速幂中的if(b&1)这一步,表示取出b在二进制下的最低位,用来配合b>>=1
```
int main(){
int a,b,p;
cin>>a>>b>>p;
int res=1%p;
while(b){
if(b&1) res=res*1ll*a%p;
a=a*1ll*a%p;
b>>=1;
}
cout<<res<<endl;
}
```
快速幂中的if(b&1)这一步,表示取出b在二进制下的最低位,用来配合b>>=1