当快速幂还超long long时 可以在快速幂中调用快速乘
typedef long long ll;
ll ksc(ll x,ll y,ll mod)
{
return (x*y-(ll)((long double)x/mod*y)*mod+mod)%mod;
}
ll fun(ll a,ll b,ll p)
{
ll ans=1;
while(b)
{
if(b&1)
ans=ksc(ans,a,p);
a=ksc(a,a,p);
b>>=1;
}
return ans%p;
}
快速幂之前写过
快速乘
typedef long long ll;
ll ksc(ll x,ll y,ll mod)
{
return (x*y-(ll)((long double)x/mod*y)*mod+mod)%mod;
}
原文:https://www.cnblogs.com/zxn124/p/10504187.html