a%k 当p=1
a^p%k=(a*a^(p-1)%k)%k; p是奇数。
((a*a)%k)^p/2 p是偶数。
long long mod(long long a,long long p)
{
if(p==1)
return a%m;
if(p%2)
return mod(a%m,p-1)*a%m;
else
return mod((a*a)%m,p/2);
}
原文:http://www.cnblogs.com/myhlbl/p/4145983.html