码迷,mamicode.com
首页 > 其他好文 > 详细

费马小定理

时间:2020-07-11 22:45:51      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:完全   快速幂取模   sla   不可   lan   tps   因此   证明   素数   

定义

\(a^{p - 1} \equiv 1 \pmod p\)
变式: $a^{p - 2} \equiv \dfrac{1}{a} \pmod p \Leftrightarrow a \times 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 \times 2 \times 3 \times ... \times (p - 1) \equiv a \times 2a \times 3a \times ... \times (p - 1)a \pmod p\)
\((p - 1)! \equiv (p - 1)! \times a{p-1} \pmod p\)
又因为 \(((p - 1)!, p) = 1\) 同余两边可约去 \((p - 1)!\), 得
\(a^{p - 1} \equiv 1 \pmod p\)

费马图形证明

请参考图形证明

费马小定理

标签:完全   快速幂取模   sla   不可   lan   tps   因此   证明   素数   

原文地址:https://www.cnblogs.com/lieberdq/p/13285713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!