快速幂/快速幂取膜

快速幂/快速幂取膜

int quick_pow(int a,int b)
{
    int ans = 1,base = a;
    while(b != 0)
    {
        if(b&1)    ans *= base;
        base *= base;
        b >>= 1;
    }
    return ans;
}

int quick_mod(int a,int b,int c)
{
    a %= c;
    int ans = 1;
    while(b > 0)
    {
        if((b&1) != 0)
            ans = (a * ans) % c;
        a *= a % c;
        b >>= 1;
    }
    return ans;
}
... ... ...