小言_互联网的博客

快速幂+快速乘模板

319人阅读  评论(0)
typedef long long ll;
const ll mod = 1000000007;

ll q_mul(ll a,ll b,ll mod) // 快速乘
{
    ll res = 0;
    ll tmp = b;
    ll tmp1 = a;
    while(tmp)
    {
        if(tmp&1) res = ((res%mod) + (tmp1%mod))%mod;
        tmp1 = (tmp1<<1)%mod;
        tmp >>= 1;
    }
    return res%mod;
}

ll q_pow(ll a,ll b,ll mod) // 快速幂
{
    ll res = 1;
    ll tmp = b;
    ll tmp1 = a;
    while(tmp)
    {
        if(tmp&1) res = q_mul(res,tmp1,mod);
        tmp1 = (tmp1*tmp1)%mod;
        tmp >>= 1;
    }
    return res%mod;
}

转载:https://blog.csdn.net/qq_43461168/article/details/101854506
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场