费马小定理

定理内容:
aa为自然数,pp为一个质数。则有

ap≡a (mod p)a^p \equiv a\ (mod\ p)

其中 ≡\equiv 是同模符号,表示左右的数字对于p来说取模,是相等的。
证明:
数学归纳法

  1. 当a=1a = 1时, 显然成立。
  2. 当a=aa = a时,设 p∣(ap−a)p|(a^p - a),即pp为ap−aa^p - a的约数。
  3. 则当a=a+1a = a + 1时, 尝试证明 p∣((a+1)p−(a+1))p | ((a + 1)^p - (a + 1))。
    证明如下:
    根据二项式定理,展开该项:

(a+1)p−(a+1)=∑k=0pCpkak1p−k−a−1=Cp0a01p+∑k=1p−1Cpkak1p−k+Cppap10−a−1=1+∑k=1p−1Cpkak1p−k+ap−a−1=∑k=1p−1Cpkak1p−k+ap−a\begin{aligned} (a + 1)^p - (a + 1) &= \sum_{k=0}^{p}C_p^ka^k1^{p-k} -a - 1 \\ &= C_p^0a^01^p + \sum_{k=1}^{p-1}C_p^ka^k1^{p-k} + C_p^pa^p1^0 - a - 1 \\ &= 1 + \sum_{k=1}^{p-1}C_p^ka^k1^{p-k} + a^p - a - 1 \\ &= \sum_{k=1}^{p-1}C_p^ka^k1^{p-k} + a^p - a \end{aligned}

因为Cpk=p!k!(p−k)!C_p^k = \frac{p!}{k!(p - k)!}并且pp为质数,所以pp为∑k=1p−1Cpkak1p−k\sum_{k=1}^{p-1}C_p^ka^k1^{p-k}的因数,即 p ∣∑k=1p−1Cpkak1p−kp\ | \sum_{k=1}^{p-1}C_p^ka^k1^{p-k}。
又因为由假设2可知pp为ap−aa^p - a的因数。所以pp为∑k=1p−1Cpkak1p−k+ap−a\sum_{k=1}^{p-1}C_p^ka^k1^{p-k} + a^p - a的因数,即为(a+1)p−(a+1)(a + 1)^p - (a + 1)的因数。证毕。

应用:
如果aa不是pp的倍数,那么还有

ap−1≡1 (mod p)a^{p - 1} \equiv 1\ (mod\ p)

所以可以用上式解决一些问题,如计算21002^{100}模13。
因为2不是13的倍数,则213−1≡1(mod 13)2^{13 - 1} \equiv 1 (mod \ 13)。

2100=212∗8+4 (mod 13)=(212)8∗24 (mod 13)=18∗24 (mod 13)=16 (mod 13)=3\begin{aligned} 2^{100} &= 2^{12 * 8 + 4} \ (mod \ 13)\\ &= (2^{12})^8 * 2^4\ (mod \ 13)\\ &= 1^8 * 2^4\ (mod \ 13)\\ &= 16\ (mod\ 13)\\ &= 3 \end{aligned}

reference:

  1. https://zhuanlan.zhihu.com/p/87611586
  2. https://www.cnblogs.com/-citywall123/p/10673191.html