快速幂,快速幂取模

 1 ll poww(ll a,ll b)
 2 {
 3     ll r=1,base=a;
 4     while(b){
 5         if(b&1) r*=base;
 6         base*=base;
 7         b>>=1;
 8     }
 9     return r;
10 }

 

LL qmod(LL a, LL b)
{
    if (b == 0) return 1;
    LL r = a % MOD;
    LL k = 1;
    while (b > 1){
        if ((b & 1)!=0)
            k = (k * r) % MOD;
        r = (r * r) % MOD;
        b >>= 1;
    }
    return (r * k) % MOD;
}

 

posted @ 2017-08-23 10:40  啦啦啦天啦噜  阅读(305)  评论(0)    收藏  举报