欧拉函数
欧拉函数(Euler's totient function),通常用希腊字母 \(\varphi(n)\) 表示,是数论中一个非常重要的函数。
核心定义
对于正整数 \(n\),欧拉函数 \(\varphi(n)\) 是指:在小于或等于 \(n\) 的正整数中,与 \(n\) 互质(最大公约数为 1)的数的个数。
举例说明
以 \(n = 6\) 为例:
- 小于等于 6 的正整数有:1, 2, 3, 4, 5, 6。
- 与 6 互质的数有:1 和 5(因为 \(gcd(1,6)=1\),\(gcd(5,6)=1\))。
- 数量共 2 个,所以 \(\varphi(6) = 2\)。
计算公式
如果你知道 \(n\) 的质因数分解形式 \(n = p_1^{a_1} \cdot p_2^{a_2} \cdots p_k^{a_k}\),可以使用通用公式:
\[\varphi(n) = n \left(1 - \frac{1}{p_1}\right) \left(1 - \frac{1}{p_2}\right) \cdots \left(1 - \frac{1}{p_k}\right)
\]
📍 常用特性:
- 质数: 如果 \(n\) 是质数,那么 \(\varphi(n) = n - 1\)。
- 积性函数: 如果 \(m\) 和 \(n\) 互质,那么 \(\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\)。
为什么它很重要?
- 欧拉定理: 若 \(a\) 与 \(n\) 互质,则 \(a^{\varphi(n)} \equiv 1 \pmod n\)。这是数论的基石。
- 现代加密: 它是 RSA 加密算法 的核心原理,没有它,现在的网络支付和数据安全将难以实现。
线性筛求欧拉函数的原理:
我们知道,线性筛的过程中,每个合数都是用它的最小的质因数筛掉的。不妨设这个合数是 \(a \cdot b\),而它的最小的质因数是 \(a\),则:
如果 \(a \mid b\)(\(b\) 中还含有至少一个因数 \(a\)),则 \(b\) 和 \(a \cdot b\) 包含的质因数是相同的,即:
- \(\varphi(a \cdot b) = a \cdot b \left(1 - \frac{1}{p_1}\right) \left(1 - \frac{1}{p_2}\right) \cdots \left(1 - \frac{1}{p_k}\right)\)
- \(\varphi(b) = b \left(1 - \frac{1}{p_1}\right) \left(1 - \frac{1}{p_2}\right) \cdots \left(1 - \frac{1}{p_k}\right)\)
此时,\(\varphi(a \cdot b) = a \cdot \varphi(b)\)
如果 \(a \nmid b\),则 \(a \cdot b\) 比 \(b\) 多了一个质因子 \(a\),即:
- \(\varphi(b) = b \left(1 - \frac{1}{p_1}\right) \left(1 - \frac{1}{p_2}\right) \cdots \left(1 - \frac{1}{p_k}\right)\)
- \(\varphi(a \cdot b) = a \cdot b \left( 1 - \frac{1}{a} \right) \left(1 - \frac{1}{p_1}\right) \left(1 - \frac{1}{p_2}\right) \cdots \left(1 - \frac{1}{p_k}\right) = a \left( 1 - \frac{1}{a} \right) \varphi(b) = (a - 1) \varphi(b)\)
浙公网安备 33010602011771号