欧拉定理

  • 1.引入基本概念
    • 1.1互质
    • 1.2质因数
    • 1.3余数的基本性质
    • 1.4同余
  • 2.欧拉函数
    • 2.1定义
    • 2.2欧拉函数通式
    • 2.3代码
  • 3.欧拉定理
    • 3.1定义
    • 3.2证明
    • 3.3费马小定理
  • 4.应用及拓展
    • 4.1求逆元
    • 4.2欧拉降幂

1.引入基本概念

1.1互质

公约数只有1 的两个 整数,称为互质。a与b互质,则写作 (a,b)=1 。

1.2质因数

质因数指能整除给定整数的质数,例如6的质因数为2和3。

1.3余数的基本性质

(a+b)%c = ((a%c)+(b%c)) % c
(a-b)%c = ((a%c) - (b%c)) % c
(a*b)%c = ((a%c) * (b%c)) % c

1.4同余

给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,那么就称整数a与b对模m同余,记作a≡b(mod m)

2.欧拉函数

2.1定义

对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目.

2.2欧拉函数通式

欧拉函数通式:φ(n)=n*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)*……*(1-1/pn)
p为n的质因数,n是不为0的正整数,φ(1)=1,质数的φ为自己减1 例如φ(2)=1

2.3代码

typedef long long ll;
ll Eular(ll n)
{ll ans=n;for(int i=2; i*i <= n; ++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;
}

还可以在素数筛的同时求欧拉函数,效率更高。

3.欧拉定理

3.1定义

对任意两个正整数 a, n,如果两者互质,那么 aφ(n)≡1(mod n)

3.2证明

先设集合P为小于n且与n互质的正整数集合{q1 , q2 , q3 , … , qφ(n)},这个集合有两个性质:

  • qi与n互质
  • qi模n后各不相同

再设集合Q为{a*q1%n , a*q2%n , a*q3%n , … , a*qφ(n)%n}
可证:

  • 因为a与n互质,所以a*q%n也与n互质,即Q中各元素均与n互质
  • 通过反证法,若a*qi%n=a*qj%n,那么
    a*qi-a*qj=0 --> a*(qi-qj)=0 --> qi-qj=0 --> qi=qj
    因为先前集合P中qi各不相同,所以不成立,可得集合Q中元素各不相同

由上可得P,Q均为包含φ(n)个小于n且n互质且各不相同的元素集合,而这样的集合只有一个,可得P=Q
所以集合P元素的乘积和集合Q元素的乘积相等:
 q1 * q2 * q3 * … * qφ(n)=(a*q1%n) * (a*q2%n) * (a*q3%n) * … * (a*qφ(n)%n)
 q1 * q2 * q3 * … * qφ(n)=aφ(n) * (q1 * q2 * q3 * … * qφ(n))%n
同时除q1-qφ(n)即可得
         aφ(n)≡1(mod n)

3.3费马小定理

若存在整数a,p,a为整数,p为质数,那么a(p-1)≡ 1(mod p)

费马小定理是欧拉定理的一种特殊情况(当n为质数时φ(n)为n-1)

4.应用及拓展

4.1求逆元

定义:
  对于a*b≡1(mod p),b是a在模m下a的逆元。(只有a与p互质时存在逆元)
意义
  余数的基本性质中只包括加减乘,当面对除法时,逆元就相当于是个倒数,可以将除法变为乘法,方便进行模运算。
应用
当p为质数时由费马小定理a(p-1)≡ 1(mod p)得,逆元b为a(p-2);
当p过大时需要使用快速幂进行计算;
当p不是质数时则需使用欧拉定理,提前求出p的欧拉函数,逆元b为a(φ(n)-1)
时间复杂度为O(nlongn)

4.2欧拉降幂

在求解abmod p时,如果b过大,使用暴力和快速幂是无法求解的,所以这时候就需要用到欧拉降幂来求解。
欧拉降幂公式为 abmod p = a^(b mod φ( p )+φ( p )) mod p
代码:

ll quickpow(ll a,ll b,ll mod)
{ll res=1%mod;while (b){if (b & 1) res = (long long)res * a % mod;a=(long long)a * a % mod;b >>= 1;}return res;
}
ll eular(ll n)
{ll ans = n;for(int i=2; i*i <= n; ++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;
}ll eularpow(ll a,ll b,ll p)
{ll phi = eular(p);ll tb = 0;tb=b%phi+phi;return quickpow(a,tb,p);
}
int main()
{ll a,b,p;cin>>a>>b>>p; cout<<eularpow(a,b,p);return 0;
}

欧拉定理(从理论到应用)相关推荐

  1. 【计算理论】计算复杂性 ( NP 完全问题 | 顶点覆盖问题 | 哈密顿路径问题 | 旅行商问题 | 子集和问题 )

    文章目录 一.顶点覆盖问题 二.哈密顿路径问题 三.旅行商问题 四.子集和问题 五.NP 完全问题 一.顶点覆盖问题 顶点覆盖 ( Vertex Cover ) : 给定一个 无向图 G\rm GG ...

  2. 扒一扒那些叫欧拉的定理们(三)——简单多面体欧拉定理的抽象形式

    早点关注我,精彩不迷路! 在前面的文章中,我们介绍和证明了简单多面体欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(二)--简单多面体欧拉定理的证明 扒一扒那些叫欧拉的定理们(一)--基本介绍和简 ...

  3. 欧拉定理、快速幂与逆元

    Color the necklace 时间限制:2000 ms  |  内存限制:65535 KB 难度:0 描述 As we all know, girls love necklaces, espe ...

  4. 计算机系统与网络安全:理论课程内容

    第一章 概述(1学时)   学习计算机系统与网络安全的知识要求:信息安全的主要研究领域:信息与信息技术基础:安全与信息安全含义与历史发展:安全体系结构(包括安全服务.安全机制及其相互关系):威胁与攻击 ...

  5. 扒一扒那些叫欧拉的定理们(十二)——经济学里的欧拉定理

    早点关注我,精彩不迷路! 在前面的文章中,我们介绍的都是纯数学世界里的欧拉定理的各个结论,相关内容请戳: 扒一扒那些叫欧拉的定理们(十一)--欧拉数论定理 扒一扒那些叫欧拉的定理们(十)--群论观点下 ...

  6. RSA加密——欧拉定理

    欧拉定理 质数:指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数 互质:公约数只有1的两个整数(记作:(a, b)= 1) 余数的基本属性: (a + b)% c = (a % c) + ...

  7. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  8. LLVM数据流分析的理论

    LLVM数据流分析的理论 标量优化(scalar目录): 死代码消除(BDCE.cpp[code],ADCE.cpp[code],DCE.cpp[code]), 全局值编号(GVN.cpp[code] ...

  9. 参数服务器训练基本理论

    参数服务器训练基本理论 参数服务器训练是分布式训练领域普遍采用的编程架构,主要解决以下两类问题: • 模型参数过大:单机内存空间不足,需要采用分布式存储. • 训练数据过多:单机训练太慢,需要加大训练 ...

最新文章

  1. LibManagementSys图书管理系统
  2. GirlView的分页
  3. 项目经理在项目各阶段的工作重点
  4. 大数据技术原理与应用-概述
  5. monkey 真机测试步骤
  6. centos 命令行执行多个命令_命令行如何执行jar包里面的方法
  7. 巧用PHP双$功能兼容线上线下配置文件
  8. 2019-05-16mysql忘记密码怎么办
  9. c4d语言包英文,Win版本MAXON Cinema 4D R21.027 C4D中文与英文版下载安装
  10. 手机的RFID射频技术应用
  11. Oracle常用sql语法手册
  12. 推荐几个在线编程学习的网站,程序员必备
  13. 域名证书到期监控告知
  14. Pandas教程 | 数据处理三板斧——map、apply、applymap详解
  15. 二分法求利率(非线性方程求解)
  16. 深入Nodejs技术栈
  17. 乔布斯在斯坦福大学演讲原文
  18. 自然科学领域期刊分区——什么是核心期刊(核心A、B、C)
  19. Origin将多个文件数据导入
  20. LeetCode 例题精讲 | 08 排列组合问题:回溯法的候选集合

热门文章

  1. 浅谈三文鱼的营养价值、营养成分及养生功效
  2. 楚留香鸿蒙点怎么来,《楚留香》奇遇攻略大全,触发点汇总(转)
  3. STM32F103之系统时钟初始化及延迟函数
  4. Div2 D. Range and Partition(构造,前缀和+二分枚举)
  5. sensors源代码解读
  6. 几种预防禽流感的方法:
  7. vue模拟textarea自动高度
  8. ci框架autoload机制,多项目配置共用molde、library、helper
  9. UI设计培训中所需要的手绘能力
  10. 解放码农,飞算全自动软件工程平台的创新“套路”