定义

欧拉函数 φ ( n ) \varphi(n) φ(n)表示小于等于 n n n且与 n n n互质 ( g c d ( x , n ) = 1 ) (gcd(x,n)=1) (gcd(x,n)=1)的数的个数

公式

φ ( n ) = n × ( ∏ p i ∣ m , p i 是 质 数 p i − 1 p i ) \varphi(n)=n\times (\prod\limits_{p_i|m,p_i是质数}\frac{p_i-1}{p_i}) φ(n)=n×(pi​∣m,pi​是质数∏​pi​pi​−1​)

推导

一些显而易见或者易证明的性质

  1. φ ( p ) = p − 1 , p 是 质 数 \varphi(p)=p-1,p是质数 φ(p)=p−1,p是质数
  2. φ ( p q ) = φ ( p ) × φ ( q ) = ( p − 1 ) × ( q − 1 ) , p , q 均 是 质 数 \varphi(pq)=\varphi(p)\times \varphi(q)=(p-1)\times(q-1),p,q均是质数 φ(pq)=φ(p)×φ(q)=(p−1)×(q−1),p,q均是质数
    a. 直观理解, [ 1 , p q ] [1,pq] [1,pq]内与 p q pq pq互质的数等于 [ 1 , p ] [1,p] [1,p]内与 p p p互质的数以及 [ 1 , q ] [1,q] [1,q]内与 q q q互质的数乘积
    b. 从积性函数方向理解,欧拉函数是积性函数,所以有 φ ( p q ) = φ ( p ) × φ ( q ) \varphi(pq)=\varphi(p)\times\varphi(q) φ(pq)=φ(p)×φ(q)
  3. 对 n n n分解质因子, n = p 1 k 1 p 2 k 2 … p m k m = ∏ i = 1 m p i k i n=p_1^{k_1}p_2^{k_2}\dots p_m^{k_m}=\prod\limits_{i=1}^{m}p_i^{k_i} n=p1k1​​p2k2​​…pmkm​​=i=1∏m​piki​​,其中 p i p_i pi​两两互质,所以 p i k i p_i^{k_i} piki​​两两互质
    a. 直观理解, [ 1 , n ] [1,n] [1,n]内与 n n n互质的数所有 [ 1 , p i k i ] [1,p_i^{k_i}] [1,piki​​]内与 p i k i p_i^{k_i} piki​​互质的数的乘积
    b. 从积性函数方向理解, φ ( n ) = ∏ i = 1 m φ ( p i k i ) \varphi(n)=\prod\limits_{i=1}^{m}\varphi(p_i^{k_i}) φ(n)=i=1∏m​φ(piki​​)
  4. φ ( p k ) = ( p − 1 ) ( p k − 1 ) \varphi(p^k)=(p-1)(p^{k-1}) φ(pk)=(p−1)(pk−1)
    a. 因为 [ 1 , p k ] [1,p^k] [1,pk]内与 p p p不互质的数为 1 × p , 2 × p , … , ( p k − 1 ) × p 1\times p, 2\times p, \dots, (p^{k-1}) \times p 1×p,2×p,…,(pk−1)×p,共 p k − 1 p^{k-1} pk−1个
    b. 那么 [ 1 , p k ] [1,p^k] [1,pk]内与 p p p互质的数有 p k − p k − 1 = ( p − 1 ) × ( p k − 1 ) p^k-p^{k-1}=(p-1)\times (p^{k-1}) pk−pk−1=(p−1)×(pk−1)

欧拉函数公式证明

对于一个正整数 n n n:

由性质 3 3 3,对 n n n分解质因子, n = p 1 k 1 p 2 k 2 … p m k m = ∏ i = 1 m p i k i n=p_1^{k_1}p_2^{k_2}\dots p_m^{k_m}=\prod\limits_{i=1}^{m}p_i^{k_i} n=p1k1​​p2k2​​…pmkm​​=i=1∏m​piki​​

由性质 4 4 4,
φ ( n ) = ∏ i = 1 m φ ( p i k i ) = ∏ i = 1 m ( p i − 1 ) ( p i k i − 1 ) = ∏ i = 1 m p i − 1 p i p i k i = ( ∏ i = 1 m p i k i ) × ( ∏ i = 1 m p i − 1 p i ) = n × ( ∏ i = 1 m p i − 1 p i ) \varphi(n)=\prod\limits_{i=1}^{m}\varphi(p_i^{k_i})\\ =\prod\limits_{i=1}^{m}(p_i-1)(p_i^{k_i-1})\\ =\prod\limits_{i=1}^{m}\frac{p_i-1}{p_i}p_i^{k_i}\\=(\prod\limits_{i=1}^{m}p_i^{k_i})\times(\prod\limits_{i=1}^{m}\frac{p_i-1}{p_i})\\=n\times (\prod\limits_{i=1}^{m}\frac{p_i-1}{p_i}) φ(n)=i=1∏m​φ(piki​​)=i=1∏m​(pi​−1)(piki​−1​)=i=1∏m​pi​pi​−1​piki​​=(i=1∏m​piki​​)×(i=1∏m​pi​pi​−1​)=n×(i=1∏m​pi​pi​−1​)

故 φ ( n ) = n × ( ∏ i = 1 m p i − 1 p i ) \varphi(n)=n\times (\prod\limits_{i=1}^{m}\frac{p_i-1}{p_i}) φ(n)=n×(i=1∏m​pi​pi​−1​),得证

【算法】欧拉函数公式证明相关推荐

  1. 欧拉函数公式及其证明

    以下转自 百度文库 炒鸡好QAQ 欧拉函数 : 欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) . 完全余数集 ...

  2. 欧拉函数公式的证明以及欧拉定理的简单应用(附带证明)

    相信大家都已经了解了欧拉函数的定义 在1~N当中,与N互质的数的个数被叫做欧拉函数,简写成Φ(N): 在算数基本定理中我们可以把一个数N分解成所有质因子的乘积的形式,记作 N = p1^a1 * p2 ...

  3. 算法 {欧拉函数,欧拉定理,费马小定理}

    欧拉函数 定义 ϕ ( x ) , x ∈ N + \phi(x), \ \ x \in N^+ ϕ(x),  x∈N+ means the number of y ∈ N + y \in N^+ y ...

  4. rsa算法欧拉函数c语言,三、欧拉函数

    请思考以下问题: 任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?) 计算这个值的方法就叫做欧拉函数,以φ(n)表示.在1到 ...

  5. 欧拉函数性质证明 : n所有约数的欧拉函数和等于n

    性质:对于正整数n ∑d|nϕ(d)=n \sum_{d|n}\phi(d) = n 证明过程 (1)如果 n = 1 ϕ(n)=1=n \phi(n) = 1 = n 满足 (2)如果n是质数 ϕ( ...

  6. 第二十六章 数论——欧拉函数(详解与证明)

    第二十六章 数论--欧拉函数(详解与证明) 欧拉函数 1.互质 2.欧拉函数的定义 3.欧拉函数的公式 4.欧拉函数的证明 5.欧拉函数的使用 (1)问题一: 思路 代码 (2)问题二: 思路 cas ...

  7. 一欧拉函数(Euler‘s totient function)

    算法总结 一欧拉函数(Euler's totient function) 欧拉函数的定义: 在数论中,对于正整数N,少于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(n). φ ...

  8. ACM - 欧拉函数(内容)

    欧拉函数 : 欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) . 完全余数集合: 定义小于 n 且和 n 互质 ...

  9. NOI数学之提高级:欧拉定理和欧拉函数

    欧拉定理详解 欧拉定理详解_郝伟老师的博客--大数据.并行计算与人工智能时代-CSDN博客_欧拉定理 欧拉函数与欧拉定理 欧拉函数与欧拉定理_leader_one的博客-CSDN博客_欧拉定理 欧拉定 ...

最新文章

  1. linux创建组并指定gid的命令,在Linux中用groupadd命令创建组:创建具有特定GID的组及系统组...
  2. 牛客小白月赛5-F题: 圆(circle)
  3. 今天下棋,结合以前一些技巧的总结
  4. 蓝港CIO韩明顺谈零售数字化转型:面向体验、玩转数据
  5. HDU2049 组合数学 错排公式
  6. 排序算法-05简单选择排序(python实现)
  7. SCSS 文件里的感叹号用法 - 给变量设置默认值
  8. vector的求和用法accumulate
  9. C++中输入一组数字 以换行符结束输入
  10. Mac 键盘符号整理
  11. JS模块化规范对比以及在Node.js的实现
  12. python使用dbm持久字典详解
  13. 利用1stOpt进行logistic函数非线性拟合
  14. A3的PDF试卷怎么对半拆分成A4打印?
  15. 【C++】数字的组合排列情况
  16. 团队项目成员与题目(本地地铁查询app)
  17. JAVA 查找PDF中落款单位所在页码及位置信息
  18. dnfdpl服务器维护了,魔兽世界TBC:地狱火半岛隐藏的“大恐怖”,魔能机甲成双出没!...
  19. 内置方法和模块的应用
  20. 模仿“百度”页面的html代码

热门文章

  1. 虚拟主机的php环境怎么配置,虚拟主机配置thinkphp(如何实现虚拟主机配置)
  2. YYKit系列之——YYCache使用
  3. java设计模式用组合模式实现树形结构
  4. golang常用加签验签 - 2.hmac
  5. Linux系统管理16:shell
  6. matlab barrier,使用fmincon函数出现barrier问题
  7. Github页面图片无法显示Github页面访问不了
  8. 台式计算机电源怎么看,怎么看电脑电源多少w 查看自己电脑功耗方法 (全文)
  9. ccf python写题随手记
  10. yum安装报错Error: Package,完美解决