一、威尔逊定理

若p为质数,则

p|(p-1)!+1

亦:(p-1)! ≡ p-1 ≡ -1(mod p)

例题:

HDU 2973 YAPTCHA (威尔逊定理及其逆定理)

解题报告见http://blog.csdn.net/synapse7/article/details/18728157

二、费马小定理

假如p是质数,且gcd(a,p)=1,那么

a^(p-1) ≡1(mod p)

我们可以利用费马小定理来简化幂模运算:由于a^(p-1)≡a^0≡1(mod p),所以a^x(mod p)有循环节,长度为p-1,所以a^x≡a^(x%(p-1))(mod p)

例题:

HDU 4549 M斐波那契数列 (费马小定理降幂&矩阵快速幂)

HDU 4196 Remoteland

三、欧拉定理

若a,m为正整数,且gcd(a,m) = 1,则

a^φ(m)≡1(mod m)

我们亦可以利用欧拉定理来简化幂模运算:a^x≡a^(x%φ(m))(mod m)

例题:

HDU 1395 2^x mod n = 1 (欧拉定理 分解素因数)

HDU 3221 Brute-force Algorithm (矩阵 欧拉定理降幂)

为下一节做铺垫,我们将a^x≡a^(x%φ(m))(mod m)变下形:

由于a^φ(m)≡1(mod m)

a^x≡a^(x%φ(m))≡a^(x%φ(m)+φ(m))(mod m)

四、求幂大法(广义欧拉定理)及其证明

对于同余式a^b≡x(mod m),如何求出x?(1<=a,m<=1000000000,1<=b<=10^1000000)

注意到b很大,我们可以先采取一些方法降幂。

若gcd(a,m)=1,那么使用欧拉定理即可:a^b≡a^(b%φ(m))(mod m)

若gcd(a,m)>1,且b>φ(m),则有“求幂大法”——a^b≡a^(b%φ(m)+φ(m))(mod m)

(当b<=φ(m)时直接用快速幂即可)

例题:

FZU 1759 Super A^B mod C

HDU 2837 Calculation

大致证明:

1. 在a的0次,1次,...,b次幂模m的序列中,前r个数(a^0到a^(r-1))互不相同,从第r个数开始,每s个数就循环一次。

证明:由鸽巢定理易证。

我们把r称为a幂次模m的循环起始点,s称为循环长度。(注意:r可以为0)

用公式表述为:a^r≡a^(r+s)(mod m)

2. a为素数的情况

令m=(p^r)m′,则gcd(p,m')=1,所以p^φ(m')≡1(mod m')

又由于gcd(p^r,m′)=1,所以φ(m‘)|φ(m),所以p^φ(m)≡1(mod m'),

即p^φ(m)=km'+1,两边同时乘以p^r,得p^(r+φ(m))=km+p^r(因为m=(p^r)m′)

所以p^r≡p^(r+s)(mod m),这里s=φ(m)

3. 推论:p^b≡p^[r+(b-r)%φ(m)](mod m)

4. 又由于m=(p^r)m′,所以φ(m)≥φ(p^r)=[p^(r-1)](p-1)≥r

所以p^r≡p^[r+φ(m)]≡p^[r%φ(m)+φ(m)](mod m)

所以p^b≡p^[r+(b-r)%φ(m)]≡p^[r%φ(m)+φ(m)+(b-r)%φ(m)]≡p^[φ(m)+b%φ(m)](mod m)

即p^b≡p^(b%φ(m)+φ(m))(mod m)

5. a为素数的幂的情况

是否依然有a^r’≡a^(r‘+s’)(mod m)?(其中s‘=φ(m),a=p^k)

答案是肯定的,由2知p^s≡1(mod m′),所以p^(s*(k/gcd(s,k))≡1(mod m′),所以当s’=s/gcd(s,k)时才能有p^(s'k)≡1(mod m′),此时s‘|s|φ(m),且r’=ceil(r/k)<=r<=φ(m)

由r',s'与φ(m)的关系,依然可以得到a^b≡a^(b%φ(m)+φ(m))(mod m)

6. a为合数的情况

只证a拆成两个素数的幂的情况,大于两个的用数学归纳法可证。

设a=a1a2,ai=pi^ki,ai的循环长度为si

则s|lcm(s1,s2),由于s1|φ(m),s2|φ(m),那么lcm(s1,s2)|φ(m),所以s|φ(m)

r=max{ceil(ri/ki)}<=max{ri}<=φ(m)

由r,s与φ(m)的关系,依然可以得到a^b≡a^(b%φ(m)+φ(m))(mod m)

证毕。

附:三大定理的证明(定理的引用参考《初等数论及其应用》)

一、威尔逊定理

(PS:在利用定理4.10时,仅需用到a^-1的存在性;证明中的“只有”二字要用定理4.11中的“唯一性”)

二、费马小定理

重申一遍,gcd(a,p)=1

三、欧拉定理

证明前,我们先定义一个概念:

转载于:http://blog.csdn.net/synapse7/article/details/19610361

三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明相关推荐

  1. 卢卡斯定理 费马小定理

    Lucas定理是用来求 c(n,m) mod p的值,p是素数(从n取m组合,模上p) 描述为: Lucas(n,m,p)=combine(n%p,m%p)* Lucas(n/p,m/p,p) Luc ...

  2. Fansblog (HDU - 6608)(威尔迅定理+费马小定理)

    Farmer John keeps a website called 'FansBlog' .Everyday , there are many people visited this blog.On ...

  3. 夜深人静写算法(三十二)- 费马小定理

    文章目录 一.前言 二.费马小定理 1.费马小定理定义 2.费马小定理证明 三.素数判定和伪素数 1.素数判定 2.伪素数 四.费马小定理的应用 1.二分快速幂降幂 2.模 p 逆元 3.Rabin- ...

  4. 密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理

    文章主要根据百度百科和维基百科相关相关知识点整理而成! 辗转相除法 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法.它的具体做法是:用较小数除较大数 ...

  5. BUUCTF [NCTF2019]childRSA(费马小定理)

    [NCTF2019]childRSA(费马小定理) 题目 from random import choice from Crypto.Util.number import isPrime, sieve ...

  6. 关于逆元(费马小定理,exgcd)

    1.逆元是个什么东西 首先这里有个式子: ((( ab\frac{a}{b}ba​ ))) modmodmod ppp,这个式子的答案怎么求呢?? A 直接求不行吗? Q别想了不能.我们发现一个分数 ...

  7. 初等数论四大定理(威尔逊定理,欧拉定理,中国剩余定理,费马小定理)

    1.威尔逊定理:在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.即:当且仅当p为素数时:( p -1 )! ≡ p-1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于 ...

  8. 7. 数论四大定理(威尔逊定理、欧拉定理、费马小定理、孙子定理)

    一.准备工作 点击查看数论基础知识 二.威尔逊定理 威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大. 1. 定理及其变形 当且仅当p为素 ...

  9. 数论四大定理(欧拉定理、费马小定理、中国剩余定理、威尔逊定理)

    前置知识 同余 假设 a,ba,ba,b 都是整数,如果 nnn 是一个正整数,且存在整数 kkk 使得 a−b=k×na−b=k \times na−b=k×n,则称 a,ba,ba,b 模 nnn ...

最新文章

  1. objective-c对NSArray的学习
  2. 奇数页分节符什么意思_删除分节符问题
  3. 传递给系统调用的数据区域太小怎么解决_40张图看懂分布式追踪系统原理及实践...
  4. 在linux下安装配置DNS服务器
  5. [云炬创业管理笔记]第五章打磨最有效的商业模式测试4
  6. 朴素容斥原理[ZJOI2016][bzoj4455]小星星
  7. Java设置edittext光标,如何改变的EditText光标高度?
  8. php cdr,win10彻底禁止cdr联网
  9. 12-order by和group by 原理和优化 sort by 倒叙
  10. Docker 安装Node-Exporter+ Prometheus Server +Grafana
  11. Webpack实战(九):实现资源按需加载-资源异步加载
  12. Java click传递变量,Java-OnClickListener中的最终变量要求
  13. Linux学习-0927
  14. 使用sqlplus显示中文为乱码的解决办法
  15. 测试篇之一 sd卡独写速度测试
  16. matlab实现ad转换,通信原理软件AD转换课程设计Matlab
  17. 哪一类功率放大电路效率最高_高频放大电路原理详解及应用电路汇总
  18. 获取对象上的属性(三种方法)
  19. IDM(PC端下载) -Chrome浏览器插件
  20. 一款不错的Android环形进度条

热门文章

  1. 向量个数,向量维数,向量空间维数
  2. ThinkPad开启、禁用触摸板
  3. 搭建云服务器简单流程【华为云服务器】
  4. 日本关西信息中心:LPWAN技术ZETA、LoRaWAN、SIGFOX测评分析
  5. U8固定资产最重要的数据表
  6. HRSaaS系统和ERP系统有什么区别?
  7. 哈工大游戏设计复习题
  8. 基于ROS搭建简易软件框架实现ROV水下目标跟踪(补1)--gazebo仿真
  9. 学会这招,小姐姐看你的眼神将不一样
  10. 正大国际期货:外盘黄金期货怎么做,需要注意什么?