fast power

fast power

ll qpow(ll a,ll b,ll m){
    ll ans=1;
    ll k=a;
    while(b){
        if(b&1)ans=ans*k%m;
        k=k*k%m;
        b>>=1;
    }
    return ans;
}

fast multiplier

ll qmul(ll a,ll b,ll m){
    ll ans=0;
    ll k=a;
    ll f=1;//f is used to store the negative sign
    if(k<0){f=-1;k=-k;}
    if(b<0){f*=-1;b=-b;}
    while(b){
        if(b&1)
            ans=(ans+k)%m;
        k=(k+k)%m;
        b>>=1;
    }
    return ans*f;
}


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326038640&siteId=291194637