快速幂
a^b%p
(操作一)
int quickpow(int a,int b,int n) { int ans=1; while(b) { if(b%2==1) ans=ans*a%n; a=a*a%n; b/=2; } return ans; }
(分治)
比如求3^5
也就是由3^2 , (3^2)^2 , 最后(3^2)^2*2
得来
int calc(int a,int b,int c) { if(b==1) return a; int tmp=calc(a,b/2,c); tmp=tmp*tmp%c; if(b%2==1) tmp=tmp*a%c; return tmp; }
原文:https://www.cnblogs.com/xiaoyezi-wink/p/10656921.html