(模板)快速幂

—————————————————————————————————————————————————— —————————————————————前排护眼——————————————————————— ——————————————————————————————————————————————————

#include<bits/stdc++.h>
using namespace std;

long b,p,k,ans=1;
long x,y,z;

int main(){
    cin>>b>>p>>k;
    x=b;y=p;z=k;
    
    while(y>1){
        if(y%2==0){
            x*=x;
            y/=2;
            x%=z;
        }
        else{
            ans*=x;
            ans%=z;
            x*=x;
            y/=2;
            x%=z;
        }
    }
    ans*=x;
    ans%=z;
    cout<<ans<<endl;
}

猜你喜欢

转载自www.cnblogs.com/xiaozezz/p/11687605.html