📅  最后修改于: 2023-12-03 15:41:49.644000             🧑  作者: Mango
费马小定理(Fermat's Little Theorem)是一条非常重要的定理,用于快速计算模意义下的幂和逆元,广泛应用于密码学、组合数学、数论等领域。
如果 $p$ 是一个质数,$a$ 是一个整数,且 $a$ 不被 $p$ 整除,则有:
$$ a^{p-1} \equiv 1 \pmod{p} $$
换句话说,$a$ 的 $p-1$ 次方与 $1$ 对 $p$ 取模的余数相等。
有许多种证明费马小定理的方法,其中最为经典的证明方法是利用欧拉定理,此处给出验证定理的证明:
假设 $a$ 不被 $p$ 整除,考虑集合 $S = {a, 2a, \cdots, (p-1)a}$。显然,这个集合的大小为 $p-1$,其中每个元素对 $p$ 取模后都不同:
$$ \begin{aligned} & a_1 \equiv a_2 \pmod p ~~~~ \longrightarrow ~~~~ a_1 \equiv a_2 \pmod{p} \ & a_1 \equiv a_i \pmod p ~~~~ \longrightarrow ~~~~ i = 2, 3, \cdots, p-1 \ & a_1 + k p \equiv a_2 + l p \pmod p ~~~~ \longrightarrow ~~~~ k = l \ \end{aligned} $$
其中 $a_1 = a$。
由于 $p$ 是一个质数且不被 $a$ 整除,那么 $a, 2a, \cdots, (p-1)a$ 的所有元素都是 $p$ 关于 $a$ 的非等剩余系。因此,它们的积与 $1$ 对 $p$ 取模的余数相等:
$$ a \times 2a \times \cdots \times (p-1) a \equiv 1 \pmod{p} $$
因为 $a^{p-1}$ 在取模 $p$ 意义下也等于 $1$,两边同时乘以 $a^{-1}$,得到:
$$ a^{p-2} \equiv a^{-1} \pmod{p} $$
因此,我们可以对于任意一个数 $a$ 和一个质数 $p$,通过 $a^{p-2}$ 求得 $a$ 在取模 $p$ 意义下的逆元。
由于费马小定理的结论,计算 $a^b \pmod{p}$ 的值时,可以将指数 $b$ 对 $p-1$ 取模,从而减少计算量:
$$ a^b \equiv a^{b \bmod{(p-1)}} \pmod{p} $$
对于任意一个数 $a$ 和一个质数 $p$,通过 $a^{p-2}$ 求得 $a$ 在取模 $p$ 意义下的逆元:
$$ a^{-1} \equiv a^{p-2} \pmod{p} $$
如果对于任意一个整数 $a$,均有 $a^{p-1} \equiv 1 \pmod{p}$,则 $p$ 可能是一个质数。但如果存在某个 $a$ 不能满足该条件,那么 $p$ 一定不是一个质数。
费马小定理是一个重要的定理,可应用到很多领域中。熟练使用费马小定理,可以帮助我们更好的理解模运算和逆元运算,加速我们的算法实现。