欧拉函数,欧拉定理,费马小定理介绍及模板

2023-10-05 23:31

本文主要是介绍欧拉函数,欧拉定理,费马小定理介绍及模板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

欧拉函数的定义:对于正整数 n n ,欧拉函数是小于等于n的数中,与 n n 互质的数的数目

欧拉函数又称ϕ函数,例如 ϕ(8)=4 ϕ ( 8 ) = 4 ,因为1,3,5,7均和8互质

定理:

  1. 如果 n n 为某一个素数p,则: ϕ(p)=p1 ϕ ( p ) = p − 1
  2. 如果 n n 为某一个素数p的幂次 pa p a ,则: ϕ(pa)=(p1)pa1 ϕ ( p a ) = ( p − 1 ) ∗ p a − 1
  3. 如果 n n 为任意两个互质的数a,b的乘积,则: ϕ(ab)=ϕ(a)ϕ(b) ϕ ( a ∗ b ) = ϕ ( a ) ∗ ϕ ( b )
  4. n=pa11pa22...pakk n = p 1 a 1 ∗ p 2 a 2 ∗ . . . ∗ p k a k 为正整数 n n 素数幂分解,那么
    ϕ(n)=n(11p1)(11p2)...(11pk)

    推论: 当 n n 为奇数时,有ϕ(2n)=ϕ(n)

以下是两个常用的定理:

  • 欧拉定理:对于任何两个数值的正整数 a,m a , m (m>=2),有 aϕ(m)1(mod m) a ϕ ( m ) ≡ 1 ( m o d m )
  • 费马小定理: 当 m m 是质数时,am11(mod m)

模板

返回小于等于n且与n互质的数的个数

int euler_phi(int n)  
{  int res = n;  int m = (int)sqrt(n);  for(int i = 2; i <= m; i++)  if(n % i == 0)  {  res = res / i * (i-1);  while(n % i == 0) n /= i;  }  if(n > 1) res = res / n * (n-1);  return res;  
}

筛选法求欧拉函数

void euler_phi()  
{  for(int i = 1; i < N; i++) phi[i] = i;  for(int i = 2; i < N; i++)  if(phi[i] == i) //成立说明i是素数for(int j = i; j < N; j += i) //j要从i开始,这样可以处理素数的情况  phi[j] = phi[j] / i * (i-1);  
}  

这篇关于欧拉函数,欧拉定理,费马小定理介绍及模板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/152289

相关文章

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分