[模板] - 快速冪

long long quickmod(long long a,long long b,long long m)
{
    long long ans = 1;
    while(b)//用一個循環從右到左便利b的所有二進制位
    {
        if(b&1)//判斷此時b[i]的二進制位是否爲1
        {
            ans = (ans*a)%m;//乘到結果上,這裏a是a^(2^i)%m
            b--;//把該爲變0
        }
        b/=2;
        a = a*a%m;
    }
    return ans;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章