快速幂
点击查看递归
int quickpow(int a,int b,int n)
{
if(b==1)return a;
if(b%2==0)
{
int t=quickpow(a,b/2,n);
return t*t%n;
}
else{
int t=quickpow(a,b/2,n);
t=t*t%n;
t=t*a%n;
return t;
}
}
点击查看非递归
int quickpow(int a,int b,int n)
{
int t=1;
while(b)
{
if(b&1)t=t*a%n;
a=a*a%n;
b/=2;
return t;
}
}