欧拉函数
对于正整数 ,欧拉函数 表示 的缩同余类的个数,也就是 中与 互素的数的个数。(这里不需要考虑 0 和 n ,因为当 n > 1 时,这两个数一定与 n 不互素。)
按照肯尼斯·艾佛森的记号,欧拉函数的定义式可以写为
\bbox[#C0FFFF,5px,border:2px solid #90A0FF]{ \varphi(x)=\sum_k[(k,n)=1][k \in N][k<n] }\\
这里的方括号记号表示:对于命题函数 , 。
但是这种表示方式很难计算欧拉函数的值。事实上,欧拉函数有另一个便于计算的公式:
\bbox[#C0FFFF,5px,border:2px solid #90A0FF]{ \varphi(n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3})\cdots(1-\frac{1}{p_k}) }\\
其中 是 的所有不重复的素因子。
下面给出对这个计算式的证明。
情况1
当 n = 0 时,显然 ,因为 n = 0 时,欧拉函数的计算范围内只有 0,但是 (0, 0) = 0。
当 n = 1 时, ,因为 1 与自身互素。
情况2
当 n 为素数时, ,因为 都不被 n 整除,所以这些数都与 n 互素。
情况3
如果 p 为素数,n 是 p 的正整数次方,那么 ,证明如下:
考虑满足 的正整数 m,如果 ,必有 ,否则 ,故 ,矛盾。
同样,如果 ,那么 (因为 p 是素数),所以 。
这就说明,与 互素的数与不整除 p 的数一一对应。而 这 个数中,p 的倍数只有 这 个数,所以 。
欧拉函数的积性
“积性”指的是对于互素的 m, n,函数 满足 。欧拉函数是积性函数。(但是积性不对全体自然数成立。)
我们有这样的引理:对于 ,欧拉函数满足 ,证明如下:
(这是来自Faithfully(CSDN)的一个很有意思的证法)
构造 的一个数阵:
可以看到,每一行都是 m 的一个完全剩余系,每一列都是 n 的一个完全剩余系。(这是因为如果某一列不是 n 的完全剩余系,那么一定存在两个元素模 n 同余,那么在同余式两边减去这一列的第一个数,再根据 (m, n)=1 消去同余式两边的 m,得到一个矛盾的结论。我说的比较抽象,这里动笔算一下,结果很容易得到。)
这样,在第一行能找出 m 的一个欧拉剩余系,记作 。根据裴蜀定理,对于 存在整数 x, y 满足 ,那么对于 ,有 ,而 x 与 y-ax 都是整数,这说明 所在的这一列都与 m 互素。
同时,在每一列我们都能找到 n 的一个欧拉剩余系。所以,在数阵中可以找到 列,其中每一列都有 个元素同时和 m 与 n 互素,这一共是 个元素。接下来,我们证明“同时和 m 与 n 互素”等价于“和 mn 互素”。
如果 ,肯定有 。
如果 ,那么存在整数 x, y 使 。由于 x 和 yn 也是整数,所以 ,同理 。
现在观察这个数阵,可以发现里面包含了 这 mn 个数。所以我们刚才找到的 个元素就是前 mn 个正整数中与 mn 互素的全部整数。所以 ,证毕。
情况4
对于任意正整数 n ,构造 n 的标准分解: ,其中 均为素数。根据欧拉函数的积性,同时注意到 两两互素,所以有
\begin{align} \varphi(n)&=\varphi(p_1^{\alpha_1}p_2^{\alpha_2}p_3^{\alpha_3}\cdots p_k^{\alpha_k})\\[1em] &=\varphi(p_1^{\alpha_1}) \varphi(p_2^{\alpha_2}) \varphi(p_3^{\alpha_3})\cdots \varphi(p_k^{\alpha_k})\\[1em] &=p_1^{\alpha_1}(1-\frac{1}{p_1})p_2^{\alpha_2}(1-\frac{1}{p_2})p_3^{\alpha_3}(1-\frac{1}{p_3})\cdots p_k^{\alpha_k}(1-\frac{1}{p_k})\\[0.5em] &=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3})\cdots(1-\frac{1}{p_k}) \end{align}\\
证毕。
欧拉函数还有另一种计算形式:
\bbox[#C0FFFF,5px,border:2px solid #90A0FF]{ \varphi(n)=p_1^{\alpha_1-1}(p_1-1)p_2^{\alpha_2-1}(p_2-1)p_3^{\alpha_3-1}(p_3-1)\cdots p_k^{\alpha_k-1}(p_k-1) }\\
根据上面的情况4不难证明,这里不再赘述。