费马小定理
如果p是一个质数,而整数a不是p的倍数,则有a(p-1)≡1 (mod p)。
例如:计算 2100除以 13 的余数
2100
= (212)8 * 24 (mod 13)
= 18 * 16 (mod 13)
=16 (mod 13)
=3 (mod 13)
故余数为 3
逆元
通过上述定理可知:
a
(
p
−
2
)
a^{(p-2)}
a(p−2) =
1
a
\frac{1}{a}
a1。
代码
LL qkpow(LL a,LL p,LL mod)
{
LL t=1,tt=a%mod;
while(p)
{
if(p&1)t=t*tt%mod;
tt=tt*tt%mod;
p>>=1;
}
return t;
}
LL getInv(LL a,LL mod)
{
return qkpow(a,mod-2,mod);
}