通过MCP连接 →

输入计算

数学公式

广告

结果

a^(p-1) mod p
1
Equals 1 — Fermat's Little Theorem holds
a^p mod p 2
a mod p 2
p 是素数吗? Yes
gcd(a, p) 1

什么是费马小定理?

费马小定理是数论中的基石之一。它指出:如果 p 是素数,且整数 a 不能被 p 整除(即 \(\gcd(a, p) = 1\)),那么 a 的 (p − 1) 次方除以 p 的余数恒为 1。用符号表示就是:\(a^{p-1} \equiv 1 \pmod{p}\)。它还有一个对任意整数 a 都成立的更一般形式:\(a^{p} \equiv a \pmod{p}\)。

模运算圆环,展示幂运算模 p 回到 1
费马小定理:将 a 提升到 p-1 次幂后,模素数 p 回到 1。

如何使用本计算器

输入底数 a 和数值 p。计算器会先判断 p 是否为素数,再求出 \(\gcd(a, p)\),并利用快速模幂算法同时算出 \(a^{p-1} \bmod p\) 与 \(a^{p} \bmod p\)。当 p 为素数且 \(\gcd(a, p) = 1\) 时,第一个结果必定为 1,从而验证该定理成立。如果不满足这两个条件,\(a^{p-1}\) 的结果会显示为「n/a」,因为此时定理并不保证结果等于 1。

公式详解

模幂运算通过对底数反复平方并不断对 p 取模来求值,因此即使指数非常大,计算量也能保持在可控范围内。这一定理是众多应用的理论基础:素性检验(费马检验)、RSA 加密中的密钥运算,以及求模逆元——因为当 p 为素数时,\(a^{p-2} \bmod p\) 正是 a 关于模 p 的逆元。

Advertisement

实例演算

设 \(a = 2\),\(p = 7\)。由于 7 是素数且 \(\gcd(2, 7) = 1\),我们预期 $$2^{6} \bmod 7 = 64 \bmod 7 = 1.$$ ✔ 一般形式则给出 $$2^{7} \bmod 7 = 128 \bmod 7 = 2,$$ 恰好等于 \(a \bmod 7 = 2\)。✔

a 的 p 减 1 次幂模 p 等于 1 的逐步约简
示例演算:连续平方并模 p 约简后得到结果 1。

常见问题

如果 p 不是素数会怎样? 此时定理可能不成立。计算器会标注 p 为非素数,只有一般形式 \(a^{p} \bmod p\) 的结果有意义,但它不一定等于 a。

如果 a 是 p 的倍数会怎样? 那么 \(\gcd(a, p) \neq 1\),所以 \(a^{p-1} \bmod p\) 不会等于 1(实际为 0)。不过一般形式 \(a^{p} \equiv a\) 依然成立。

可以用它来求模逆元吗? 可以。对于素数 p,\(a^{p-2} \bmod p\) 就是 a 关于模 p 的乘法逆元。

最后更新: