逆元 Inverse element
1.什么是逆元
当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法:
设c是b的逆元,则有b*c≡1(mod m);//(b*c-1)%9973=0 ,我们称 c 是 b 关于 m 的乘法逆元
则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m);
即a/b的模等于a*(b的逆元)的模;
一般用inv(b)来表示b的逆元
若对于数字A,C 存在X,使A * X = 1 (mod C) ,那么称X为 A 对C的乘法逆元。
2.求逆元的方法
(1).费马小定理,下面的例题1就是使用的费马小定理
费马小定理的应用条件:mod必须是素数,并且gcd(b,mod)=1,
inv(b)=b^(mod-2) 这就需要用到快速幂了
逆元就是这样应用的;
***************************************************
例题1
要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。
Input
数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <&