1.费马小定理|欧拉定理
由费马小定理得当p为质数,(a,p)=1时,ap-1≡1 mod p
所以ap-2≡a-1
由欧拉定理当(a,p)=1但p可以不为质数,aΦ(p)≡1 mod p
2.扩展欧几里德
设a的逆元为x,则可以视作ax≡1 mod p
可以视作 ax-bp=1
然后用扩展欧几里德就行了。
核心代码:
int exgcd(int &x,int &y,int a,int b) { if(!b) {x=1,y=0;return a;} int g=exgcd(x,y,b,a%b),t=y; y=x-y*(a/b); x=t; return g; } exgcd(x,y,i,p); printf("%d\n",(x+p)%p);