Unverified Commit e59c3890 authored by kZime's avatar kZime Committed by GitHub
Browse files

优化euler.md逻辑、修复typo

改了一大堆
parent c8b8e277
Loading
Loading
Loading
Loading
+29 −21
Original line number Diff line number Diff line
## 欧拉函数的定义

欧拉函数(Euler's totient function),即 $\varphi(n)$ ,表示的是小于等于 $n$ 和 $n$ 互质的数的个数。

比如说 $\varphi(1) = 1$ 。

当 n 是质数的时候,显然有 $\varphi(n) = n - 1$ 。

利用唯一分解定理,我们可以把一个整数唯一地分解为质数幂次的乘积,

设 $n = \prod_{i=1}^{n}p_i^{k_i}$ ,其中 $p_i$ 是质数,那么 $\varphi(n) = n \times \prod_{i = 1}^s{\dfrac{p_i - 1}{p_i}}$ 

#### 证明:

引理(1):设 $x=p^k$ , 那么 $\varphi(x)=p^{k-1}\times(p-1)$ 

证明:

容易发现 $x\perp y (y\bmod p \ne 0)$ 。我们试着将 $x$ 划分为长度为 $p$ 的 $\dfrac{p^k}{p}=p^{k-1}$ 段,每一段都有 $p-1$ 个数与 $x$ 互质。所以与 $x$ 互质的数个数即为: $p^{k-1}\times(p-1)$ 

接下来我们证明 $\varphi(n) = n \times \prod_{i = 1}^s{\dfrac{p_i - 1}{p_i}}$ 

$$
\because n=\prod_{i=1}^{n} p_i^{k_i} \\ 	\begin{aligned}\therefore \varphi(x) &= \prod_{i=1}^{n} \varphi(p_i^{k_i}) \\&= \prod_{i=1}^{n} (p_i-1)\times {p_i}^{k_i-1}\\&=\prod_{i=1}^{n} {p_i}^{k_i} \times(1 - \frac{1}{p_i})\\&=x~ \prod_{i=1}^{n} (1- \frac{1}{p_i})\end{aligned}
$$

## 欧拉函数的一些性质

- 欧拉函数是积性函数。
@@ -30,19 +14,43 @@ $$

  特别地,当 $n$ 是奇数时 $\varphi(2n) = \varphi(n)$ 。

-    $n = \sum_{d \mid n}{\varphi(d)}$ 
- $n = \sum_{d \mid n}{\varphi(d)}$ 

  利用 [莫比乌斯反演](./mobius.md) 相关知识可以得出。

    也可以这样考虑:如果 $\gcd(k, n) = d$ ,那么 $\gcd(\frac{k}{d},\frac{n}{d}) = 1$ 。$k < n$
  也可以这样考虑:如果 $\gcd(k, n) = d$ ,那么 $\gcd(\dfrac{k}{d},\dfrac{n}{d}) = 1, ( k < n )$。

  如果我们设 $f(x)$ 表示 $\gcd(k, n) = x$ 的数的个数,那么 $n = \sum_{i = 1}^n{f(i)}$ 。

    根据上面的证明,我们发现, $f(x) = \varphi(\frac{n}{x})$ ,从而 $n = \sum_{d \mid n}\varphi(\frac{n}{d})$ 。注意到约数 $d$ 和 $\frac{n}{d}$ 具有对称性,所以上式化为 $n = \sum_{d \mid n}\varphi(d)$ 。
  根据上面的证明,我们发现, $f(x) = \varphi(\dfrac{n}{x})$ ,从而 $n = \sum_{d \mid n}\varphi(\dfrac{n}{d})$ 。注意到约数 $d$ 和 $\dfrac{n}{d}$ 具有对称性,所以上式化为 $n = \sum_{d \mid n}\varphi(d)$ 。

- 若 $n = p^k$ ,其中 $p$ 是质数,那么 $\varphi(n) = p^k - p^{k - 1}$ 。
  (根据定义可知)

* 由唯一分解定理, 设 $n = \prod_{i=1}^{n}p_i^{k_i}$ , 其中 $p_i$ 是质数, 有$\varphi(n) = n \times \prod_{i = 1}^s{\dfrac{p_i - 1}{p_i}}$ 。

  证明:

  * 引理:设 $p$为任意质数, 那么 $\varphi(p^k)=p^{k-1}\times(p-1)$ 。

    证明:显然对于从1到$p^k$的所有数中, 除了$p^{k-1}$个$p$的倍数以外其它数都与$p^k$互素, 故$\varphi(p^k)=p^k-p^{k-1}=p^{k-1}\times(p-1)$, 证毕。

  接下来我们证明 $\varphi(n) = n \times \prod_{i = 1}^s{\dfrac{p_i - 1}{p_i}}$ 。由唯一分解定理与$\varphi(x)$函数的积性

  

$$
\begin{aligned}
	\varphi(n) &= \prod_{i=1}^{s} \varphi(p_i^{k_i}) \\
	&= \prod_{i=1}^{s} (p_i-1)\times {p_i}^{k_i-1}\\
	&=\prod_{i=1}^{s} {p_i}^{k_i} \times(1 - \frac{1}{p_i})\\
	&=n~ \prod_{i=1}^{s} (1- \frac{1}{p_i})
	&\square
\end{aligned}
$$



## 如何求欧拉函数值

如果只要求一个数的欧拉函数值,那么直接根据定义质因数分解的同时求就好了。这个过程可以用*Pollard Rho*算法优化。