快速幂取模
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; }
快速幂取模
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; }