一、快速幂
int quickmod(int a,int b)//a^b%p
{
int ans=1;
while(b)
{
if(b&1)
ans=ans*a%p;
b=b/2;
a=a*a%p;
}
return ans%p;//0<=a,b<=1e9;1<=p<=1e9
}
二、龟速乘
int guimod(int a,int b,int p)//a*b%p
{
int ans=0;
while(b)
{
if(b&1)
ans=(ans+a)%p;
b=b/2;
a=(a+a)%p;
}
return ans;//1<=a,b,p<=1e18
}