跳到正文
格致开物MATHWIKI

欧拉函数

欧拉函数 φ(n) 统计 1≤k≤n 中与正整数 n 互素的整数个数。例如 n=12 时只有 1,5,7,11 互素于 12,所以 φ(12)=4。n=1 时,约定 φ(1)=1,对应唯一的整数 1。

从素因子排除不合格的数

若 p 是素数,1,…,p−1 都与 p 互素,因此 φ(p)=p−1。对素数幂 pk,在 1,…,pk 中,恰有 pk−1 个数是 p 的倍数,余下 φ(pk)=pk−pk−1=pk(1−1p).

一般地,把 n 的不同素因子记为 p1,…,pr。一个数与 n 互素,当且仅当它不被任何 pi 整除。用容斥原理排除这些倍数,可得 φ(n)=n∏p∣n(1−1p), 乘积只取不同素因子。以 12=22⋅3 代入,得 12(1−1/2)(1−1/3)=4,与逐个列数一致。重复把素因子 2 算两次会错误地排除同一批数。欧拉定理用 φ(n) 给出互素整数的幂在模 n 下的周期性。

再取 n=30=2⋅3⋅5 看容斥的每一层。先从 30 个整数中减去 2、3、5 的倍数,分别有 15、10、6 个;两两交叠的倍数 6、10、15 又须加回,分别有 5、3、2 个;三重交叠的 30 的倍数最后再减去 1 个。于是 φ(30)=30−(15+10+6)+(5+3+2)−1=8。乘积公式给 30(1−12)(1−13)(1−15)=8,与逐层计数一致。

参考资料