费马小定理

Posted lieberdq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了费马小定理相关的知识,希望对你有一定的参考价值。

定义

(a^{p - 1} equiv 1 pmod p)
变式: $a^{p - 2} equiv dfrac{1}{a} pmod p Leftrightarrow a imes a^{p - 2} equiv 1 pmod p $

前提

(p) 是质数, 且 (a) 不是 (p)的质数

方法

直接快速幂取模就行

code

inline ll q_pow(ll x, ll y, int mod) {
	ll ans = 1;
	while (y) {
		if (y & 1) ans = (ans * x) % mod;
		x = (x * x) % mod;
		y >>= 1;
	}
	return ans;
}
inline int feim(int a, int mod) {
	return f_pow(a, mod - 2);
}

引理1

(a,b,c)(3) 个整数, (m) 为正整数, 且 ((m,c) = 1), 则当 (ac equiv bc pmod m) 时,有 (a equiv b pmod m)

引理2

(m) 是一个整数且 (m > 1), (b) 是一个整数且 ((m,b) = 1). 如果 (a_1, a_2, a_3...a_m) 是模 (m) 的一个完全剩余系, 则 (ba_1, ba_2, b_a3...ba_m) 也构成模 (m) 的一个完全剩余系

引理1证明

(ac equiv bc pmod m)
可得 (ac-bc equiv 0 pmod m)
可得 ((a-b)c equiv 0 pmod m)
因为 ((m,c) = 1)
(m,c) 互质
(c) 可以约去
(a-b equiv 0 pmod m)
可得 (a equiv b pmod m)

引理2证明

反证法:
若将 (2) 个整数 (ba_i)(ba_j) 同余
(ba_i equiv ba_j pmod m (i geqslant 1 且 j geqslant 1))
根据引理1
(a_i equiv a_j pmod m)
由完全剩余系的定义知这是不可能的
因此不存在 (2) 个整数 (ba_i)(ba_j) 同余
所以 (ba_1, ba_2, b_a3...ba_m) 构成模 (m) 的一个完全剩余系

费马语言证明

构造素数 (p) 的完全剩余系
(P = {1, 2, 3, p - 1})
因为 ((a, p) = 1), 由引理2可得
(A = {a, 2a, 3a, (p - 1)a})
也是 (p) 的一个完全剩余系, 由完全剩余系的性质得
(1 imes 2 imes 3 imes ... imes (p - 1) equiv a imes 2a imes 3a imes ... imes (p - 1)a pmod p)
((p - 1)! equiv (p - 1)! imes a{p-1} pmod p)
又因为 (((p - 1)!, p) = 1) 同余两边可约去 ((p - 1)!), 得
(a^{p - 1} equiv 1 pmod p)

费马图形证明

请参考图形证明
























以上是关于费马小定理的主要内容,如果未能解决你的问题,请参考以下文章

费马小定理 证明

费马小定理&欧拉定理

夜深人静写算法(三十二)- 费马小定理

[bzoj5118]Fib数列2_费马小定理_矩阵乘法

《夜深人静写算法》数论篇 - (16) 费马小定理

费马小定理与欧拉定理