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);
exgcd

相关文章: