前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >欧拉函数

欧拉函数

作者头像
饶文津
发布于 2020-05-31 07:45:45
发布于 2020-05-31 07:45:45
90000
代码可运行
举报
文章被收录于专栏:饶文津的专栏饶文津的专栏
运行总次数:0
代码可运行

定义

欧拉函数ϕ(n)是不超过n且和n互质的正整数的个数。

下面直观地看看欧拉函数:

n

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

φ(n)

1

1

2

2

4

2

6

4

6

4

10

4

12

6

8

定理

  • 定理0 算术函数f如果满足对于任意两个互质的正整数m和n,均有f(mn)=f(m)f(n),就称f为积性函数(或乘性函数)。

如果对于任意两个正整数m和n,均有f(mn)=f(m)f(n),就称为完全积性函数。

  • 定理1 对于素数p,ϕ(p)=p−1。
  • 定理2 ϕ(pn)=pn−pn−1,因为素数幂pn不互质的只有p的倍数,一共有pn/p=pn−1个。
  • 定理3 若m、n互质,ϕ(mn)=ϕ(m)ϕ(n),所以欧拉函数是积性函数。

因为mn互质,和m互质的数乘上和n互质的数就会和mn互质。

  • 定理4 设n=p1a1p2a2...pkak为正整数n的素数幂分解,那么ϕ(n)=n(1−1/p1)(1−1/p2)...(1−1/pk)。

由定理2,ϕ(pn)=pn−pn−1=pn (1-1/p),又由定理3,ϕ(n)=p1a1p2a2...pkak(1−1/p1)(1−1/p2)...(1−1/pk)=n(1−1/p1)(1−1/p2)...(1−1/pk)

  所以可以方便地求欧拉函数:边找质因子边算,res=n,找到一个质因子p,res=res/p*(p-1)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int euler(int x){
    int res = x;
    for(int i=2; i*i<=x; i++)
        if(x % i == 0){
             res = res / i * (i - 1);
             while(x % i == 0) x /= i;
         }
    if(x > 1) res = res / x * (x - 1);
    return res;
}

也可以方便地求出所有数的欧拉函数。过程就是先让每个phi[i]=i,再对每个质数p,j为它的倍数,phi[j]=phi[j]/p*(p-1)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(int i=1; i<=maxn; ++i) phi[i] = i;
for(int i=2; i<=maxn; i+=2) phi[i] /= 2;
for(int i=3; i<=maxn; i+=2)
    if(phi[i] == i){
        for(int j=i; j<=maxn; j+=i)
            phi[j] = phi[j] / i * (i - 1);
    }
  • 定理5 设n是一个大于2的正整数,那么ϕ(n)是偶数。

对于素数p,ϕ(p)=p−1,大于2的素数是奇数,那么它的欧拉函数就是偶数。

对于合数n,

  由定理2,ϕ(pk)=pk−pk−1,

  p=2时,ϕ(2k)=2k−2k−1=2k−1是偶数,

  对于大于2的素数p,ϕ(pk)=pk−pk−1,p为奇数,p的次方也为奇数,两个奇数相减为偶数。

  所以ϕ(pk)为偶数。

  又由定理3,ϕ(n)=ϕ(p1a1)ϕ(p2a2)...ϕ(pkak),所以ϕ(n)一定是偶数。

  • 定理6 ∑d|nϕ(d)=n。

∑d|nϕ(d)表示所有n的约数的欧拉函数值求和,Cd是gcd(n,x)==d的x(1≤x≤n)的集合,d不同的Cd集合不相交。

  若m∈Cd,则gcd(n,m)=d,所以gcd(n/d,m/d)=1,由于1≤m≤n,所以1≤m/d≤n/d,所以m/d可以取小于n/d且与n/d互质的所有数,m和m/d个数相同,所以m的个数就是ϕ(n/d),也就是|Cd|=ϕ(n/d)。1到n每个数和n的最大公约数一定是n的约数,那么所有集合Cd的所有元素个数之和就是n,也就是∑d|n|Cd|=n。所以∑d|nϕ(d)=n。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-03-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
欧拉 函数
什么是互质 如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。比如,15和32没有公因子,所以它们是互质关系。这说明,不是质数也可以构成互质关系。
全栈程序员站长
2022/09/23
4460
欧拉 函数
C++初等数论
数学知识的根基对学好编程至关重要。本文和大家讲讲在编程中要用到的数论知识。如同余式、欧拉定理和欧拉函数、费马小定理、威尔逊定理、裴蜀定理、模运算意义下的逆元、扩展欧几里得算法、孙子定理(中国剩余定理)。
一枚大果壳
2024/03/11
2740
C++初等数论
欧拉函数
通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn) 其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数 φ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=223】
Cell
2022/02/25
4690
欧拉函数
浅谈欧拉函数[通俗易懂]
欧拉函数听起来很高大上,但其实非常简单,也是NOIP里的一个基础知识,希望大家看完我的博客能有所理解。 数论是数学的一个分支,它只讨论正整数的性质,所以以下都是针对正整数进行研究的。
全栈程序员站长
2022/09/23
1.3K0
欧拉函数、欧拉定理学习笔记
\varphi(n) = \sum \limits _{i=1}^n \left[ i \nmid n \right]
Clouder0
2022/09/23
9600
数论及数论四大定理
数论是纯粹数学的分支之一,主要研究整数的性质。整数可以是方程式的解(丢番图方程)。有些解析函数(像黎曼ζ函数)中包括了一些整数、质数的性质,透过这些函数也可以了解一些数论的问题。透过数论也可以建立实数和有理数之间的关系,并且用有理数来逼近实数(丢番图逼近)。 按研究方法来看,数论大致可分为初等数论和高等数论。初等数论是用初等方法研究的数论,它的研究方法本质上说,就是利用整数环的整除性质,主要包括整除理论、同余理论、连分数理论。高等数论则包括了更为深刻的数学研究工具。它大致包括代数数论、解析数论、计算数论等等。
Coggle数据科学
2019/09/12
3.1K0
数论及数论四大定理
欧拉函数
欧拉函数 表示的是小于等于 且和 互质的正整数的个数。(易知 )
hotarugali
2022/03/13
1.1K0
欧拉函数最全总结
计算这个值的方法就叫做欧拉函数,以φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。
全栈程序员站长
2022/09/23
2K0
欧拉函数最全总结
数论 欧拉函数_数论欧拉函数
其中p1, p2……pn为n的所有质因数,n是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。
全栈程序员站长
2022/09/23
3520
数论 欧拉函数_数论欧拉函数
poj 2478 Farey Sequence(欧拉函数是基于寻求筛法素数)
2.欧拉定理:若a与n互质。那么有a^φ(n) ≡ 1(mod n),经经常使用于求幂的模。
全栈程序员站长
2022/07/05
3220
欧拉函数的几条重要性质
⑥ 若N是质数p的k次幂,φ(N)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟N互质。
glm233
2020/09/28
8890
欧拉函数的几条重要性质
欧拉函数详解
欧拉函数 我们用 表示欧拉函数 定义: 表示对于整数n,小于等于n中与n互质的数的个数 性质 1. 为积性函数 证明: 此处证明需要用到下面计算方法1中的内容,建议先看后面再回过头来看这里 假设存在p,q,且 将n,p,q进行质因数分解 那么 因为 显然 这种方法也是常见的证明一个函数是积性函数的方法 2. 3.1到n中与n互质的数的和为 计算方法 计算单值欧拉函数 假设我们需要计算 分情况讨论
attack
2018/04/11
1.1K0
算法基础学习笔记——⑭欧拉函数\快速幂\扩展欧几里得算法\中国剩余定理
在C语言中,可以使用算法来计算欧拉函数(Euler's Totient Function)。欧拉函数,也被称为φ函数,用于计算小于或等于给定数字n的正整数中与n互质的数的个数。
命运之光
2024/03/20
2180
算法基础学习笔记——⑭欧拉函数\快速幂\扩展欧几里得算法\中国剩余定理
欧拉函数
问题:求[L, R]中K ( 假设φ(n)表示1..n-1中与n互质的数的个数。对于[L,R]中的任意一个除K 以外的整数y,满足φ(K)≤φ(y)且φ(K)=φ(y)时,K<y ),K是[L,R]中φ(n)最小并且值也最小的数。
全栈程序员站长
2022/09/06
4300
基础数论总结
从右往左。可以一直递推,然后到最后一项,然后快速幂求矩阵,矩阵最终的结果就是所求结果。更新:java的矩阵通用乘法可以表示为,可以将下列代码替换道ac代码中:
bigsai
2019/09/24
7490
基础数论总结
【acm】【数论】欧拉定理与欧拉函数
除此之外,还可以求有关阶,原根,指数相关的问题。有些题目也需要转化为带有欧拉函数的公式。
duadua
2022/10/31
7360
【acm】【数论】欧拉定理与欧拉函数
扒一扒那些叫欧拉的定理们(十一)——欧拉数论定理
转眼欧拉系列已经写了10篇,进入尾声的同时也是渐入佳境。前面我们聊到的是立体和平面几何,图论,复数领域的欧拉定理,相关内容请戳:
magic2728
2021/08/06
9080
现代密码系列:RSA密码详解
1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法
红客突击队
2022/09/28
3.6K0
现代密码系列:RSA密码详解
数论——欧拉函数
根据前面的欧拉线性筛质数的算法(可参考本人博客:数论——质数筛法),由于它在筛选的同时也求出了每个数的最小质因子,故而在其基础上求出欧拉函数即可。
全栈程序员站长
2022/09/06
3600
数论——欧拉函数
欧拉函数求法
φ(x)=x*(p1-1)/p1*(p2-1)/p2*(p3-1)/p3…*(pn-1)/pn 其中p1,p2,p3…是x的质因数;
全栈程序员站长
2022/09/23
3780
相关推荐
欧拉 函数
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验