放在前面的内容:我们知道在mod p 意义下的加减乘法运算都不会影响mod之后的值(就是说运算结果封闭在mod p的剩余系里),但是除法会,所以我们就引入了一个新的东西叫做逆元,用来算mod p意义下的除法
逆元定义:若a*x ≡ 1 (mod p),那么我们说x是a在mod p意义下的逆元,记为x=a^(-1),当且仅当a,p互质时,x存在
情况1:p为质数,显然当a不为p的倍数时,两数互质,那么由费马小定理可得,a^(p-1)%p=1,那么此时a的逆元就等于a^(p-1)/a=a^(p-2)
情况2:a,p为任意整数且互质,那么由欧拉定理可得a^φ(p) ≡ 1 (mod p),那么此时a的逆元就等于a^φ(p)/a=a^(φ(p)-1)
求法1:对于情况1直接用费马小定理即可得到
求法2:对于情况2直接用欧拉函数筛φ(p)即可得到
求法3:对于所有情况,可以用扩展欧几里得来求,我们可以发现a*x ≡ 1 (mod p) 等价于a*x+p*y=1,因为a与p互质,所以GCD(a,p)=1,所以用exgcd求解,最后得到的x即为a的逆元
注:线性求逆元会在后面给出,如有错误请联系博主,谢谢