数论——欧拉函数

2023-11-08

数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质

——百度百科词条《欧拉函数》

        欧拉函数通式:



    为了方便编程通常不用这个通式,而用Φ(x)=p1^(n1-1)*p2^(n2-1)* ... *pk^(nk-1)*(p1-1)*(p2-1)* ... *(pk-1)计算,其中p1,p2,..pk为正整数x的质因数,n1,n2,...nk对应质因数的次数。

    该式易通过欧拉函数的性质推导出来。首先将正整数n进行质因数分解(小学数学的即视感

    欧拉函数有如下性质, 若n是质数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为在1至p^k这n个数中除了p的倍数外,其他数都跟n互质。而p的倍数共有n/p即p^k/p^1=p^(k-1)个。

    另外欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)。

        所以有:

C++ code
int Euler(int ans1)
{
    int res=1;
    int ans=ans1;
    for(int i=2;i*i<=ans1;i++)
    {
        if(ans%i==0)
        {
        //如果找到ans的质因数i
        //这里的i一定是ans的质因数,因为一旦找到一个因数i,
        //下面的语句就会在ans的质因数分解式里约掉这个因数
        //例 ans=36  i=2时 循环语句执行完后ans=9 当i=4时就不会进入循环体
            ans/=i;
            res*=i-1;  //处理函数式中的 ...*(pk-1)项
            while(ans%i==0)  //处理函数式中的  ...*pk(nk-1)项
            {
                res*=i;
                ans/=i;
            }
        }
    }
    if(ans>1)
    {
        res*=(ans-1);
    }
     
    return res;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数论——欧拉函数 的相关文章

随机推荐

  • SQLServer导入导出excel及常见问题

    前几天考试系统导入导出学生信息 初次接触导入导出 为sqlserver和excel的数据传递方法之简和MS产品的高效兼容所震惊 但也遇到各种各样问题 在此介绍SQLServer导入导出excel方法及遇到的问题 SQLServer导出Exc
  • java 中Date日期类型

    4 日期相关 把1970年1月1日当做了时间原点 以毫秒值为单位 4 1 获得当前时间 System currentTimeMillis public class DateTest public static void main Strin
  • ifstream 和 ofstream 文件中读取和写入操作

    导读 ofstream是从内存到硬盘 ifstream是从硬盘到内存 其实所谓的流缓冲就是内存空间 在C 中 有一个stream这个类 所有的I O都以这个 流 类为基础的 包括我们要认识的文件I O stream这个类有两个重要的运算符
  • XGBoost和LightGBM的比较

    目录 1 XGBoost sgboost中树节点分裂时所采用的公式 xgboost的分裂步骤 xgboost总结 LightGBM 基于决策树算法的分布式梯度提升框架 LightGBM在模型的训练速度和内存方面的优化 LightGBM的le
  • arima模型 p q d 确定_【干货】时间预测之 ARIMA模型

    ARIMA 是 AutoRegressive Integrated Moving Average的简称 看起来很复杂 其实这个模型本身是多个模型的叠加或者说混合 AR 自相关模型 AutoRegressive MA 移动平均模型 Movin
  • Python显示目录的树形结构

    转自 http blog chinaunix net uid 21374062 id 5198995 html Python显示目录的树形结构 coding utf 8 仿Linux命令tree生成树形目录结构 并汇总当前目录下文件总算 A
  • pes2017服务器维护时间,PES2017授权详情与球场数据包发布时间

    East Dorsetshire AFC Bournemouth BOU Lancashire Claret Burnley BRN London FC Chelsea CHE South Norwood Crystal Palace CR
  • python:多维数组变一维数组

    python 多维数组变一维数组 b a flatten 将多维数组变为1维数组 具体代码如下 import numpy as np 1 随机生成一个4行3列的多维数组a a np random randn 4 3 print a prin
  • selenium自动化,更新到最新的chrome驱动

    很久没有做自动化了 最近想要熟悉下 发现之前的chrome驱动器与现在的chrome浏览器版本不匹配了导致报错 提示如下 raise exception class message screen stacktrace selenium co
  • (已解决)显卡(N卡)设置独显后,指定程序依旧使用集显渲染

    显卡 N卡 设置独显后 指定程序依旧使用集显渲染 设置流程如下 设置流程如下 1 打开 nvdia 控制面板 2 设置全局为独显 3 修改指定程序为独显 4 以上几步若无效 则按如下修改 选择对应的程序
  • Linux安装nginx

    Linux安装nginx 1 下载 2 准备目录 3 上传 解压 5 设置安装路径 如果 报错 gcc pcre 6 编译 7 安装 8 启动 9 其他命令 10 判断Nginx配置是否正确命令 11 开放nginx默认端口号80 12 访
  • 02_02_广度优先搜索(Breadth-First Search,BFS)

    广度优先搜索 Breadth First Search BFS 广度优先搜索 Breadth First Search BFS 介绍 是一种图遍历算法 其原理是逐层遍历图的节点 BFS从起始节点开始 先访问起始节点的所有邻居节点 然后再逐层
  • 【知识分享】关于建立GitHub个人博客的问题和解决办法

    前言 GitHub是可以共享 存储的平台 我们可以用它 1 管管自己代码 类似一个程序员专版的Onedrive 当然也不仅仅是代码 任何文件都支持 不少人用GitHub来写博客 也就是使用Github Pages服务 它会自动帮你记录代码的
  • Qt扫盲-QWidget理论使用总结

    QWidget理论使用总结 一 概述 二 顶层 控件 和子 控件 三 复合控件 四 自定义控件和绘制 五 大小提示和大小策略 六 事件 七 一组函数和属性 八 QWidget样式表 九 透明度和双缓冲 十 创建半透明窗口 一 概述 widg
  • Java中同一个文件里类和方法的引用

    Java中同一个文件里类和方法的引用 在项目开发时往往需要在同一个文件里创建几个类 并互相引用 但小白们搞不懂 所以我给大家讲解一下 目录 Java中同一个文件里类和方法的引用 1 权限修饰符 2 类的引用 1 注意修饰符 2 同文件引用
  • windows 各种消息

    win32 消息
  • H3C平台部署chatGLM2-6B 且通过两块GPU调用

    H3C平台部署chatGLM2 6B 且通过两块 调用 文件上传 首先在github上下载chatGLM2 6B的参数文件和模型文件 简单来说是在github上搜索chatGLM2 6B 如下图所示 点击右侧 下载 然后解压到新建文件夹 C
  • c++ /QT 加锁的懒汉式单例

    c 加锁的懒汉式单例 singleton h ifndef SHAREPTR T H define SHAREPTR T H pragma once include
  • Perl Getopt::Long命令行参数传递

    原文链接 https www javatpoint com perl command line arguments The simple command line options are done using s option Comple
  • 数论——欧拉函数

    在数论中 对正整数n 欧拉函数是少于或等于n的数中与n互质的数的数目 此函数以其首名研究者欧拉命名 它又称为Euler s totient function 函数 欧拉商数等 例如 8 4 因为1 3 5 7均和8互质 百度百科词条 欧拉函