公式
a(p-1)≡1(mod p)
其中,p为质数,而整数a不为p的倍数
证明
试想这么一个等差数列,a,2a,3a,4a… (p-1)a ,那么把这个数列的每一项都mod p会发生什么呢,在p为质数,且a不为p的整数倍的前提下,我们发现这个数列总存在1,2,3… p-1。如p为5,a为2,那么原数列为2,4,6,8,mod p 后的数列为2,4,1,3.
我们将原数列乘起来,a * 2a * 3a…*(p-1)a=(p-1)!*ap-1,又因为(a * b)mod p=a(mod p)*b (mod p) 所以上式mod p后还等于(p-1)!两边消去p-1的阶乘,得到ap-1=1(mod p)
应用
题目要求x* y-1mod P
其中 y-1为y的逆
y * y-1(mod p)=1
y-1=1/y(mod p)=yp-1/y(mod p)=yp-2(mod p)
因此 x*y-1mod p= x * q_pow(y,p-2) mod p
题目
https://codeforces.com/contest/1452/problem/D