首页 > 其他分享 >欧拉函数

欧拉函数

时间:2024-04-25 13:34:31浏览次数:17  
标签:phi 函数 cdot gcd 质数 欧拉 性质

定义:

欧拉函数(记为 \(\phi(n)\)),表示的是一个数 \(n\) 与小于等于它的数中有多少个满足 \(\gcd(n, x) = 1\) ,即为互质。

计算公式:

  • \(\phi(n) = n \cdot \prod_{i = 1}^{cntn}(1 - p_i)\) (其中 \(p_i\) 是 \(n\) 的质因子).

性质:

  • 性质一: 欧拉函数是积性函数,即对于满足 \(\gcd(a,b) = 1\) 的 \((a, b)\) 有 \(\phi(a \cdot b) = \phi(a) \cdot \phi(b)\).

  • 性质二: \(\phi(a \cdot b)\) = \(\phi(a) \cdot \phi(b) \cdot \frac{d}{\phi(d)} (d = gcd(a,b))\).

    注:本式子十分重要,对于 \(\phi\) 里面出现乘积的情况常常用此式子进行拆分。

  • 性质三: 若 \(n\) 为质数,\(\phi(n) = n - 1\).

  • 性质四: \(n = \sum_{d | n} \phi(d)\).

    这里给出简单证明:

    考虑枚举 \([1,n]\) 中 \(gcd(i, n) = d\) 的个数,显然有 \(\phi(\frac{n}{i})\) 个,把它们全部加起来即为 \([1,n]\) 中的数的数量,就是 \(n\)。

  • 性质五: 对于 \(d|n\) 且 \(d\) 为质数,有 \(\phi(n \cdot d) = d \cdot \phi(n)\), 对于 \(d \nmid n\)且 \(d\) 是质数,有 \(\phi(n \cdot d) = (d - 1) \cdot \phi(n)\) .

  • 性质六: 对于一个数 \(i\),小于 \(i\) 且与 \(i\) 互质的数的和为 \(\phi(i) \times i / 2\)

标签:phi,函数,cdot,gcd,质数,欧拉,性质
From: https://www.cnblogs.com/little-corn/p/18157520

相关文章

  • 构建插件函数
    1defget_response_from_plugins(name_space_p,post_type_p,user_state_p,data):2#存储每个函数的结果3try:4message=str(data["message"])5except:6message=""78plugin_dir='plugins'......
  • 欧拉路径&&欧拉回路
    定义:欧拉路径:指图中的一条路径,使得所有边都被经过且只经过一次欧拉回路:指图中的一条欧拉路径,且起点和终点相同。欧拉图:指有欧拉回路的图半欧拉图:指有欧拉路径但没有欧拉回路的图性质:1.如果一个无向图是欧拉图,那么所有节点的度数均为偶数2.如果一个无向图是半欧拉图,那么除了......
  • 输入‘(’和‘)’判断字符串有效的函数算法
    ``//设置一个函数,通过输入键盘中的‘(’和‘)’判断字符串是否有效//顺序表中的元素数据类型是char类型typedefcharDataType_t;//创建顺序栈SequenceStack各项数据(栈底地址栈容量栈顶元素下标)的结构体typedefstructSequenceStack{DataType_t*Bottom;//记录栈......
  • golang工具函数,把一个金额整型,单位为分,转成"1,231,111.00"格式的字符串
    这个函数首先将整数除以100来获取代表元的浮点数,然后格式化此数值为两位小数的字符串。接下来,函数将字符串分成整数和小数部分,并且为整数部分添加千位分隔符。最后,如果存在小数部分,它会将这两部分重新组合并返回正确格式化的金额字符串。为了正确地处理负数,我们需要先检查金额是......
  • 力扣-396. 旋转函数
    1.题目介绍题目地址(396.旋转函数-力扣(LeetCode))https://leetcode.cn/problems/rotate-function/题目描述给定一个长度为n的整数数组 nums 。假设 arrk 是数组 nums 顺时针旋转k个位置后的数组,我们定义 nums 的旋转函数  F 为:F(k)=0*arrk[0]+1*......
  • C++多态与虚拟:函数重载(Function Overloading)
    重载(Overloading):所谓重载是指不同的函数实体共用一个函数名称。例如以下代码所提到的CPoint之中,有两个memberfunctions的名称同为x():1classCPoint{23public:4floatx();5voidx(floatxval);67};  其两个memberfunctions实现代码如下:1f......
  • AWS S3 Lambda Python脚本函数执行时报错AttributeError: module ‘PIL‘ has no attr
    背景代码示例如下importPILdefadd_image(self,tag,img,step):summary=Summary()bio=BytesIO()iftype(img)==str:img=PIL.Image.open(img)eliftype(img)==PIL.Image.Image:passelse:img=scipy.misc.......
  • 自定义双向循环链表基本函数接口
    自定义双向循环链表的函数接口/********************************************************************* 文件名称: 双向循环链表的函数接口* 文件作者:[email protected]* 创建日期:2024/04/24* 文件功能:对双向链表的增删改查功能的定义* 注意事项:No......
  • python函数递归
    【递归】递归:是函数嵌套调用的一种特殊形式,也就是在调用一个函数的过程中右直接或是间接的调用到本身,然后一直循环deff1():print('一直是我')f1()f1()#调用本身,会死循环============================上述是直接调用间接调用  ================......
  • 双向循环链表及各功能函数设计
    双向循环链表/***@filename:双向链表接口设计*@brief*@[email protected]*@date2024/04/24*@version1.0:版本*@property:*@note*CopyRight(c)[email protected]*/构造双向循环链表的结点//指的是双向循......