费马小定理(Fermat Theory):假如p是质数,且(a,p)=1,那么 a^(p-1)≡1(mod p)。即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。
欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质(n不一定是质数),则: a^(φ(n))==1(%n) φ(n)是欧拉函数。若n为质数,φ(n)=n-1;
应用:
①求逆元,b^(-1)%mod。(b和mod互质)
因为:b^(φ(mod))%mod==1%mod
所以:b^(-1)%mod等价于b^(-1)*b^(φ(mod))%mod等价于b^(φ(mod)-1)%mod。
如果mod为质数,那么φ(mod)=mod-1. 化简得:b^(mod-2)%mod。再用乘法二分幂求。
②普遍的求a^b%mod。(a和mod互质)
因为:a^(φ(mod))==1%mod
所以:a^b%mod等价于求a^(b%φ(mod))%mod;
如果mod为质数,那么化简得a^(b%(mod-1))%mod;
例:求7^(222)%10
因为φ(10)=4. 所以 7^(4)%10==1%10.
(7^4)^(55)%10==1^(55)%10
7^(222)%10=(7^4^55)*7^2%10 ==1^(55)*7^2%10
所以:7^(222)%10 最后结果化简为:7^2%10==9.