费马小定理

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

apa (mod p)a^p \equiv a\ (mod\ p)

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

  1. a=1a = 1时, 显然成立。
  2. a=aa = a时,设 p(apa)p|(a^p - a),即ppapaa^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=0pCpkak1pka1=Cp0a01p+k=1p1Cpkak1pk+Cppap10a1=1+k=1p1Cpkak1pk+apa1=k=1p1Cpkak1pk+apa\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!(pk)!C_p^k = \frac{p!}{k!(p - k)!}并且pp为质数,所以ppk=1p1Cpkak1pk\sum_{k=1}^{p-1}C_p^ka^k1^{p-k}的因数,即 p k=1p1Cpkak1pkp\ | \sum_{k=1}^{p-1}C_p^ka^k1^{p-k}
又因为由假设2可知ppapaa^p - a的因数。所以ppk=1p1Cpkak1pk+apa\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的倍数,那么还有

ap11 (mod p)a^{p - 1} \equiv 1\ (mod\ p)

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

2100=2128+4 (mod 13)=(212)824 (mod 13)=1824 (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