快速幂取模(当数很大时,相乘long long也会超出的解决办法)

2019-04-14 15:28发布

LL mul(LL a,LL b) { LL ans=0; while(b) { if(b&1) ans=(ans+a)%p; a=(a+a)%p; b=b>>1; } return ans; } LL Pow(LL a,LL b) { LL result=1; LL base=a%p; while(b) { if(b&1) result=mul(result,base)%p; base=mul(base,base)%p; b=b>>1; } return result; }