欧拉函数

article/2025/11/11 5:40:12

原文链接:https://zh.m.wikipedia.org/zh/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0


欧拉函数

n为1至1000的整数时 \varphi(n)的值

在数论中,对正整数n欧拉函数\varphi(n)是小于或等于n的正整数中与互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数[1](totient function,由西尔维斯特所命名)。

例如\varphi(8)=4,因为1,3,5,7均和8互质。

欧拉函数实际上是模n的同余类所构成的乘法群(即环\mathbb{Z}/n\mathbb{Z}的所有单位元组成的乘法群)的阶。这个性质与拉格朗日定理一起构成了欧拉定理的证明。

目录

  • 历史:欧拉函数与费马小定理
    • 欧拉函数的值
      • 性质
        • 生成函数
          • 欧拉函数的走势
            • 其他与欧拉函数有关的等式
              • 与欧拉函数有关的不等式
                • 参考来源
                  • 文献来源

                    历史:欧拉函数与费马小定理编辑

                    1736年,欧拉证明了费马小定理[2]

                    假若 p为质数, a为任意正整数,那么 a^p - a可被 p整除。

                    然后欧拉予以一般化:

                    假若an互质,那么a^{\phi(n)} - 1可被n整除。亦即,a^{\phi(n)} \equiv 1 \pmod n

                    其中\phi(n)即为欧拉总计函数。如果n为质数,那么\phi(n) = n - 1,因此,有高斯的版本[3]

                    假若p为质数,ap互质(a不是p的倍数),那么a^{p-1} \equiv 1 \pmod p


                    欧拉函数的值
                    编辑

                    \varphi(1)=1(小于等于1的正整数中唯一和1互质的数就是1本身)。

                    n是质数pk次幂,\varphi(n)=\varphi(p^k)=p^kp^{k-1}=(p-1)p^{k-1},因为除了p的倍数外,其他数都跟n互质。

                    欧拉函数是积性函数,即是说若m , n互质,\varphi(mn)=\varphi(m)\varphi(n)。证明:设A , B , C是跟m , n , mn互质的数的集,据中国剩余定理,A \times BC可建立双射 (一一对应)的关系。(或者也可以从初等代数角度给出欧拉函数积性的简单证明)因此\varphi(n)的值使用算术基本定理便知,

                    n = p_1^{k_1} p_2^{k_2} \cdots p_r^{k_r}
                    \varphi(n) = \prod_{i=1}^r p_i^{k_i-1}(p_i-1) = \prod_{p\mid n} p^{\alpha_p-1}(p-1) = n\prod_{p|n}\left(1-\frac{1}{p}\right)

                    其中\alpha_p是使得p^{\alpha}整除n的最大整数\alpha(这里\alpha_{p_i} = k_i)。

                    例如\varphi(72)=\varphi(2^3\times3^2)=2^{3-1}(2-1)\times3^{2-1}(3-1)=2^2\times1\ times3\times2=24

                    性质编辑

                    n的欧拉函数\varphi(n)也是循环群 n的生成元的个数(也是n阶分圆多项式的次数)。n中每个元素都能生成n的一个子群,即必然是某个子群的生成元。而且按照定义,不同的子群不可能有相同的生成元。此外,n的所有子群都具有d的形式,其中d整除n(记作d  |  n)。因此只要考察n的所有因数d,将d的生成元个数相加,就将得到n的元素总个数:n。也就是说:

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

                    其中的dn的正约数。

                    运用默比乌斯反转公式来“翻转”这个和,就可以得到另一个关于\varphi(n)的公式:

                    \varphi(n)=\sum_{d\mid n} d \cdot \mu(n/d)

                    其中μ是所谓的默比乌斯函数,定义在正整数上。

                    对任何两个互质的正整数a , m(即gcd( a , m ) = 1),m\ge2,有

                    a^{\varphi(m)} \equiv 1 \pmod m

                    即欧拉定理。

                    这个定理可以由群论中的拉格朗日定理得出,因为任意与m互质的a都属于环\mathbb{Z}/n\mathbb{Z}的单位元组成的乘法群\mathbb{Z}/n\mathbb{Z}^{\times}

                    m是质数p时,此式则为:

                    a^{p-1} \equiv 1 \pmod p

                    即费马小定理。

                    生成函数编辑

                    以下两个由欧拉函数生成的级数都是来自于上节所给出的性质:\sum_{d|n} \varphi(d) = n

                    \varphin )生成的狄利克雷级数是:

                    \sum_{n=1}^\infty \frac{\varphi(n)}{n^s}=\frac{\zeta(s-1)}{\zeta(s)}.

                    其中ζ( s )是黎曼ζ函数。推导过程如下:

                    \zeta(s) \sum_{f=1}^\infty \frac{\varphi(f)}{f^s} = \left(\sum_{g=1}^\infty \frac{1}{g ^s}\right)\left(\sum_{f=1}^\infty \frac{\varphi(f)}{f^s}\right)
                    .\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \sum_{h=1}^\infty \left(\sum_{fg=h} 1 \cdot \varphi(g)\right) \frac {1}{h^s}
                    .\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \sum_{h=1}^\infty \left(\sum_{fg=h} \varphi(g)\right) \frac{1} {h^s} = \sum_{h=1}^\infty \left(\sum_{d|h} \varphi(d)\right) \frac{1}{h^s}
                    使用开始时的等式,就得到: \sum_{h=1}^\infty \left(\sum_{d|h} \varphi(d)\right) \frac{1}{h^s} = \sum_{h=1}^\infty \ frac{h}{h^s}
                    于是 \sum_{h=1}^\infty \frac{h}{h^s} = \zeta(s-1)

                    欧拉函数生成的朗贝级数如下:

                    \sum_{n=1}^{\in​​fty} \frac{\varphi(n) q^n}{1-q^n}= \frac{q}{(1-q)^2}

                    其对于满足| q |<1的收敛。

                    推导如下:

                    \sum_{n=1}^{\in​​fty} \frac{\varphi(n) q^n}{1-q^n} = \sum_{n=1}^{\in​​fty} \varphi(n) \ sum_{r\ge 1} q^{rn}

                    后者等价于:

                    \sum_{k\ge 1} q^k \sum_{n|k} \varphi(n) = \sum_{k\ge 1} kq^k = \frac{q}{(1-q)^2} .

                    欧拉函数的走势编辑

                    随着n变大,估计\varphi(n)的值是一件很难的事。当n为质数时,\varphi(n)=n-1,但有时\varphi(n)又与n差得很远。

                    n足够大时,有估计:

                    对每个ε > 0,都有 n >  N (ε)使得 \,n^{1-\varepsilon}<\varphi(n)<n

                    如果考虑比值:

                    \,\varphi(n)/n,

                    由以上已经提到的公式,可以得到其值等于类似1-p^{-1}的项的乘积。因此,使比值小的n将是两两不同的质数的乘积。由素数定理可以知道,常数ε可以被替换为:

                    C\,\log \log n/ \log n.

                    \varphi就平均值的意义上来说是与n很相近的,因为:

                    \frac{1}{n^2} \sum_{k=1}^n \varphi(k)= \frac{3}{\pi^2} + \mathcal{O}\left(\frac{\log n }{n}\right)

                    其中的O表示大O符号。这个等式也可以说明在集合 {1, 2, ..., n }中随机选取两个数,则当n趋于无穷大时,它们互质的概率趋于6/\pi^2。一个相关的结果是比值\varphi(n)/n的平均值:

                    \frac{1}{n} \sum_{k=1}^n \frac{\varphi(k)}{k} = \frac{6}{\pi^2} + \mathcal{O}\left( \frac{\log n }{n}\right).

                    其他与欧拉函数有关的等式编辑

                    1. \;\varphi\left(n^m\right) = n^{m-1}\varphi(n)
                    2.   \forall a \in N , \forall n \in N , \ \exists l \in N  使得 [(a >1 \and n > 1)\rightarrow (l|\varphi(a^n-1) \and l \geq n) ]
                    3.     \forall a \in N , \forall n \in N , \ \exists l \in N  使得 [(a >1 \and n > 6 \and 4 \not| n )\rightarrow (l|\varphi(a^n-1) \and l \geq 2n) ]
                    4. \sum_{d \mid n} \frac{\mu^2(d)}{\varphi(d)} = \frac{n}{\varphi(n)}
                    5. \sum_{1\le k\le n \atop (k,n)=1}\!\!k = \frac{1}{2}n\varphi(n)\text{ for }n>1
                    6. \sum_{k=1}^n\varphi(k) = \frac{1}{2}\left(1+ \sum_{k=1}^n \mu(k)\left\lfloor\frac{n }{k}\right\rfloor^2\right)
                    7. \sum_{k=1}^n\frac{\varphi(k)}{k} = \sum_{k=1}^n\frac{\mu(k)}{k}\left\lfloor\frac{ n}{k}\right\rfloor
                    8. \sum_{k=1}^n\frac{k}{\varphi(k)} = \mathcal{O}(n)
                    9. \sum_{k=1}^n\frac{1}{\varphi(k)} = \mathcal{O}(\log(n))

                    与欧拉函数有关的不等式编辑

                    1. \varphi(n) > \frac {n} {e^\gamma\; \log \log n + \frac {3} {\log \log n}},其中n > 2,γ为欧拉-马歇罗尼常数。
                    2. \varphi(n) \ge \sqrt{\frac {n} {2} },其中n > 0。
                    3. 对整数n > 6,\varphi(n) \ge \sqrt{n}
                    4. n为质数时,显然有\varphi(n) = n-1。对于合数的n,则有:
                    \varphi(n) \le n-\sqrt{n}

                    参考来源编辑

                    • Milton Abramowitz、Irene A. Stegun,Handbook of Mathematical Functions, (1964) Dover Publications , New York. ISBN 0-486-61272-4 . 24.3.2节.
                    • Eric Bach、Jeffrey Shallit,Algorithmic Number Theory ,卷1, 1996, MIT Press. ISBN 0-262-02405-5 , 8.8节,234页.
                    • Kevin Ford, The number of solutions of φ(x)=m, Ann. of Math. 150(1999), 283--311.
                    • 柯召,孙琦:数论讲义(上册),第二版,高等教育出版社,2001

                    文献来源编辑

                    1. Where does the word “totient” come from?
                    2. ^ Mathematical Thought From Ancient to Modern Times,第2卷,p.608
                    3. ^ Mathematical Thought From Ancient to Modern Times,第3卷,p.814
                    其他语言
                    Travailen  最后编辑于1年前





                    http://chatgpt.dhexx.cn/article/vQRHGDC2.shtml

                    相关文章

                    数学知识——欧拉函数

                    1. 欧拉函数 定义&#xff1a;欧拉函数ψ(n) 表示1~n中与n互质的数的个数 公式&#xff1a;如果一个数可以被分解质因式为N p1α1 *p2α2……pkαk 则ψ(n) n(1 - 1/p1)(1 - 1/p2)…(1 - 1/pk) 公式由容斥原理证明&#xff0c;证明略 算法实现思路&#xff1a; 利用求一个数…

                    数论基础——欧拉函数

                    欧拉函数&#xff1a; 就是对于一个正整数n&#xff0c;小于n且和n互质的正整数&#xff08;包括1&#xff09;的个数&#xff0c;记作φ(n) 。 欧拉函数的通式&#xff1a;φ(n)n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn) 其中p1, p2……pn为n的所有质因数&#xff…

                    欧拉函数——数学知识(c++)

                    定义&#xff1a;欧拉函数表示1-N中与N互质的数的个数&#xff1b; 给定一个数n&#xff0c;求在[1,n]这个范围内两两互质的数的个数 对于这个范围内的每一个数&#xff0c;我们只要找到不超过这个数且与这个数互质的数的个数就可以了 欧拉函数用希腊字母φ表示,φ(N)表示N的欧…

                    欧拉函数(Euler_Function)

                    一、基本概述 在数论&#xff0c;对正整数n&#xff0c;欧拉函数varphi(n)是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名&#xff0c;它又称为Eulers totient function、φ函数、欧拉商数等。 二、计算公式 三、基本性质 欧拉函数用希腊字母φ表示,φ…

                    欧拉函数最全总结

                    文章目录 欧拉函数的内容一、欧拉函数的引入二、欧拉函数的定义三、欧拉函数的性质四、欧拉函数的计算方法&#xff08;一&#xff09;素数分解法&#xff08;二&#xff09;编程思维1.求n以内的所有素数2.求φ(n)3.格式化输出0-100欧拉函数表&#xff08;“x?”代表十位数&am…

                    什么是时间复杂度

                    什么是算法 算法可以理解就是一系列被控制的步骤&#xff0c;你通过按序执行这些步骤可以实现一些目标或者产生一些输出。 时间复杂度 时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数.时间复杂度常用大O表述表述&#xff0c…

                    算法的时间复杂度和空间复杂度详解

                    通常&#xff0c;对于一个给定的算法&#xff0c;我们要做 两项分析。第一是从数学上证明算法的正确性&#xff0c;这一步主要用到形式化证明的方法及相关推理模式&#xff0c;如循环不变式、数学归纳法等。而在证明算法是正确的基础上&#xff0c;第二部就是分析算法的时间复杂…

                    一文详解时间复杂度

                    一文详解时间复杂度&#xff0c;从里到外清晰认识 1. 什么是时间复杂度2. 关于大O3. 不同数据规模的差异4. 复杂表达式的化简5. O ( l o g n ) O(logn) O(logn)中的 l o g log log是以什么为底&#xff1f;举一个例子 总结 1. 什么是时间复杂度 时间复杂度是一个函数&#xff…

                    时间复杂度分析

                    该节知识点引用机械工业出版社数据结构和算法分析第2章内容 以及极客时间数据结构和算法部分知识点 时间复杂度基础分析 算法执行时间分析 时间复杂度分析更多的是对要编写的代码进行一个事前预估分析的一个过程&#xff0c;通过事前大致分析出算法执行的时间和所需要的空间…

                    算法时间复杂度

                    在 算法基础 中&#xff0c;我们简单介绍了什么是算法、对算法的要求&#xff0c;以及说了评断算法效率的两大类方法。今天我们将重点介绍衡量算法效率的一个概念——时间复杂度。 定义 在进行算法分析的时候&#xff0c;语句的总执行次数 T(n) 是关于问题规模 n&#xff08;输…

                    java时间复杂度计算_时间复杂度到底怎么算

                    算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题&#xff0c;使用不同的算法&#xff0c;也许最终得到的结果是一样的&#xff0c;但在过程中消耗的资源和时间却会有很大的区别。 那么我们应该如何去衡量不同算法之间的优劣呢&#xff1f; 主要还是从…

                    Python 时间复杂度计算

                    一、时间复杂度 1 常见的时间复杂度 #常量阶O(1)# 对数阶O(logn)# 线性对数阶O(nlogn)# 线性阶O(n)# 平方阶,立方阶....M次方阶O(n^2),O(n^3),O(n^m)# 指数阶O(2^n)# 阶乘阶O(n!) 算法的时间复杂度对比&#xff1a; O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n2lo…

                    树的时间复杂度

                    时间复杂度是一个函数&#xff0c;它定量描述了该算法的运行时间。常见的时间复杂度有以下几种。 1&#xff0c;log(2)n&#xff0c;n&#xff0c;n log(2)n &#xff0c;n的平方&#xff0c;n的三次方&#xff0c;2的n次方&#xff0c;n! 1指的是常数。即&#xff0c;无论算法…

                    时间复杂度和空间复杂度详解

                    算法时间复杂度和空间复杂度 1.算法效率 算法效率分析分为两种&#xff1a;第一种是时间效率&#xff0c;第二种是空间效率。时间效率被称为时间复杂度&#xff0c;而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度&#xff0c;而空间复杂度主要衡量一…

                    全排列的时间复杂度

                    我们在高中的时候都学过排列组合。“如何把 n 个数据的所有排列都找出来”&#xff0c;这就是全排列的问题。我来举个例子。比如&#xff0c;1&#xff0c;2&#xff0c;3 这样 3 个数据&#xff0c;有下面这几种不同的排列&#xff1a; 1, 2, 3 1, 3, 2 2, 1, 3 2, 3, 1 3, 1…

                    十分钟搞定时间复杂度(算法的时间复杂度)

                    目录 1、什么是时间复杂度&#xff1f; 2、时间复杂度的计算 &#xff08;1&#xff09;单个循环体的推导法则 &#xff08;2&#xff09;多重循环体的推导法则 &#xff08;3&#xff09;多个时间复杂度的推导法则 &#xff08;4&#xff09;条件语句的推导法则 3、习题…

                    时间复杂度

                    时间频率 一个算法执行所耗费的时间&#xff0c;从理论上是不能算出来的&#xff0c;必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试&#xff0c;只需知道哪个算法花费的时间多&#xff0c;哪个算法花费的时间少就可以了。并且一个算法花费的时间与算…

                    什么是时间复杂度?

                    时间复杂度&#xff08;Time complexity&#xff09;是一个函数&#xff0c;它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数. 时间复杂度常用大O表述&#xff0c;不包括这个函数的低阶项和首项系数。 常见的时间复杂度 常见的算法时间复杂度由小到大…

                    数据结构—1.时间复杂度

                    目录 前言 一、时间复杂度 二、大O表示法 三&#xff0c;实例介绍 例1&#xff1a;O(N^2) 例2&#xff1a;O&#xff08;1&#xff09; 例3&#xff1a;O(M N) &#xff08;重点&#xff09;例4&#xff1a;O&#xff08;N&#xff09; 例5&#xff1a;冒泡排序&#…

                    时间复杂度计算-例题集合

                    一、常数阶二、线性阶三、对数阶四、平方阶五、多个复杂度组合&#xff1a;顺序结构六、多个复杂度组合&#xff1a;选择结构七、多个复杂结构&#xff1a;嵌套结构八、递归 ) 一、常数阶 // 常数阶 int result 100; //运行程序只执行一次 result ; //执行一次System.out…