4.快速幂模m算法

ans=a^b%m
LL quick_mod(LL a,LL b,LL m)
{
    LL ans=1;
    while(b)
    {
        if(b&1)
        {
            ans=ans*a%m;
            b--;
        }
        b/=2;
        a=a*a%m;
    }
    return ans;
}

LL quick_mod(LL b,LL p,LL m)
{
    if(p==0) return 1;
    else if(p%2) return ((b%m)*quick_mod(b,p-1,m))%m;
    else return (quick_mod(b,p/2,m)*quick_mod(b,p/2,m))%m;

你可能感兴趣的:(数论)