- (a + b) % p = (a % p + b % p) % p
- (a - b) % p = (a % p - b % p) % p
- (a * b) % p = (a % p * b % p) % p
- (a / b) % p ≠ (a % p / b % p) % p
除法取模转换为求(a∗(b的逆元)%p)。那么就可以转换为求一个数的逆元的问题,利用费马小定理,b的逆元是b^(p-2),那么利用快速幂定理就可以求解。
LL pow(LL a, LL n, LL p) //快速幂 a^n % p { LL ans = 1; while(n) { if(n & 1) ans = ans * a % p; a = a * a % p; n >>= 1; } return ans; } LL niYuan(LL a, LL b) //费马小定理求逆元 { return pow(a, b - 2, b); }