快速幂模板

快速幂取模

 

int powermod(int a,int b,int c)
{
    int ans=1;
    a%=c;
    while(b)
    {
        if(b&1)     //b是奇数,即二进制最后一位为1
           ans=ans*a%c;
        a=a*a%c;      //权值不断开方,同时可以模c无影响
        b=b>>1;       //不断右移除2
    }
    return ans;
}

 

posted @ 2016-08-19 17:11  Pacify  阅读(162)  评论(0编辑  收藏  举报