快速幂,即快速的求一个幂式的模
a,b,c均为整型
a^bmodc=((a^2)^(b/2))mod c,b是偶数
a^bmodc=((a^2)^(b/2)*a)modc,b是奇数
有了上述两个公式可以得出以下结论
1 如果b是偶数,记k=a^2modc
求 (k^(b/2))modc即可
2 如果b是奇数,记k=a^2modc
求(k^(b/2)modc*a)mod c即可
快速幂模板
<php>
int PowerMod(long long a,long long b,long long c)
{ ans=1;
a=a%c;
while(b>0)
{ if(b%2==1)
ans=ans*a%c;
b=b/2;
a=a*a%c;
}
return ans;
}