欧拉函数及其计算_计算n的欧拉函数

欧拉函数及其计算_计算n的欧拉函数欧拉函数1.定义什么是欧拉函数?任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)计算这个值的方法就叫做欧拉函数,用φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以φ(n)=4。2.计算欧拉函数计算公式这个p是什么呢?一个正整数n可以通过分解质因数得到例如n=…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

欧拉函数

1. 定义

什么是欧拉函数?

任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)

计算这个值的方法就叫做欧拉函数,用φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。

2. 计算

欧拉函数计算公式
欧拉函数及其计算_计算n的欧拉函数
这个p是什么呢?

一个正整数 n 可以通过分解质因数得到
欧拉函数及其计算_计算n的欧拉函数
例如n = 100我们就可以写成 100 = 2^2 * 5^2

欧拉值 φ(n) = 100 * (1- 1/2) * (1 - 1/5)

那么知道了这个公式,我们怎么去计算呢

大致的几步
找到因子
将把(1- 1/p)转换为(p - 1) / p
然后把相同的因子筛去

int euler(int n) { 
   
    int ans = n;
    for (int i = 2; i*i <= ans; i++) { 
   
        if (n % i == 0) { 
      
            ans = ans / i * (i-1);
            // 将相同的因子除去
            while (n % i == 0) { 
   
                n /= i;
            }
        }
    }
    if (n > 1) { 
   
        ans = ans / n * (n-1);
    }
    return ans;
}

由于本文主要目的是讲如何计算,欧拉函数公式的推导过程可以参考维基百科:欧拉函数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172050.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 中介者模式和观察者模式的区别_外观模式和中介者模式异同点

    中介者模式和观察者模式的区别_外观模式和中介者模式异同点中介者模式 Mediator动机模式定义结构要点总结笔记动机在软件构建过程中,经常会出现多个多个对象相互关联交互的情况,对象之间常常会维持一种复杂的引用关系.如果遇到一些需求的更改.这种直接的引用关系将面临不断地变化这种情况下,我们可以使用一个”中介对象”来管理对象间地关联关系,避免相互交互地对象之间地紧耦合引用关系,从而更好地抵御变换模式定义用一个中介对象来封装(封装变化)一系列地对象交互中.中介者使各个对象不需要显式地相互引用(编译时依赖->运行时依赖),从而使其耦合松散(管理变化),而

    2022年8月9日
  • Newtonsoft.Json 用法

    Newtonsoft.Json是.NET下开源的json格式序列号和反序列化的类库.官方网站:http://json.codeplex.com/使用方法1.首先下载你需要的版本,然后在应用程

    2021年12月25日
  • 移动通信概述-架构篇[通俗易懂]

    移动通信概述-架构篇[通俗易懂]移动通信概述-架构篇

    2022年9月21日
  • vue脚手架基本使用[通俗易懂]

    vue脚手架基本使用[通俗易懂]vue脚手架基本使用

    2022年4月22日
  • 免费分享美国香港日本苹果账号Apple ID,共享,海外,apple Store,自己创建「建议收藏」

    免费分享美国香港日本苹果账号Apple ID,共享,海外,apple Store,自己创建「建议收藏」第一步:准备一个未注册苹果账号的邮箱。第二步:复制链接到浏览器打开或者直接点击链接进入 AppleID注册界面:https://appleid.apple.com/account

    2022年7月4日
  • PID控制的MATLAB仿真(1)

    PID控制的MATLAB仿真(1)PID控制应用广泛,说起来PID特别的简单,在比例负反馈的基础上加入微分项实现快速调节,加入积分项实现无静差。MATLAB强大的功能让学习变得非常简单。在学习智能控制这门课的时候,老师推荐了刘金琨老师的先进PID控制一书,边看边学边调程序。下文程序选自此书。首先从模拟PID开始,被控系统一般是下图这种结构:其中PID控制器:一种用模拟PID控制的磁悬浮:电路图左侧是霍尔传

    2022年5月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号