Fermat小定理的证明
本证明参考了李煜东老师《算法竞赛进阶指南》.
我们首先证明欧拉定理,然后推导出费马小定理.
欧拉定理:若\(\gcd(a,n)=1,a,n\in \mathbb{Z}\),则\(a^{\phi(n)}\equiv 1 \pmod{n}\).其中\(\phi(n)\)为欧拉函数.
设n的简化剩余系为\(\{\overline{d_1},\overline{d_2},\dots,\overline{d_{\phi(n)}}\}\).
由定义,设\(d_1,d_2,\dots,d_{\phi(n)}\)是\(\phi(n)\)个和n互质的,小于n的正整数.即:\(\gcd(n,d_i)=1,i=1,2,...,\phi(n)\).
由于gcd是积性函数,我们有:\(\gcd(n,\prod\limits_{i=1}^{\phi(n)}{d_i})=1\).
若\(ad_i\equiv ad_j \pmod{n}\),则由a,n互质,我们直接得到:\(d_i\equiv d_j \pmod{n}\).
互为逆否命题的命题具有相同真假性.我们有:\(d_i \not \equiv d_j \pmod{n} \implies ad_i \not\equiv ad_j \pmod{n}\)
从剩余系的角度来讲,简化剩余系关于模\(n\)乘法封闭,故\(\overline{ad_i}\)也在简化剩余系中.由于\(\forall i\neq j,d_i \neq d_j\),集合\(\{\overline{d_i}\}\)和\(\{\overline{ad_i}\}\)均能表示\(n\)的简化剩余系,\(i=1,2,\dots,\phi(n)\).这里的意思是\(\forall i=1,2,...,\phi(n), \exists j=1,2,..,\phi(n) , ad_i \equiv d_j \pmod{n}\).
我们可以写出以下式子:\[a^{\phi(n)}\cdot \prod\limits_{i=1}^{\phi(n)}d_i \equiv \prod\limits_{i=1}^{\phi(n)}ad_i\equiv \prod\limits_{i=1}^{\phi(n)}d_i \pmod{n}\]
由于\(\gcd(n,\prod\limits_{i=1}^{\phi(n)}d_i)=1\),消去之得到:\[a^{\phi(n)}\equiv 1 \pmod{n}\]
稍微注意一下\(\prod\limits_{i=1}^{\phi(n)}ad_i\equiv \prod\limits_{i=1}^{\phi(n)}d_i \pmod{n}\)这个代换.这里相当于是左右两边\(d_i\)相乘的顺序不同,但最终的乘积结果相同.原因在上面已经提到了.
当\(n\)是质数时,\(\phi(n)=n-1\).此时有:\[a^{\phi(n)}\equiv a^{n-1} \equiv 1 \pmod{n}\]
证毕.
Fermat小定理的证明的更多相关文章
- Codeforces 919E Congruence Equation ( 数论 && 费马小定理 )
题意 : 给出数 x (1 ≤ x ≤ 10^12 ),要求求出所有满足 1 ≤ n ≤ x 的 n 有多少个是满足 n*a^n = b ( mod p ) 分析 : 首先 x 的范围太大了,所以使 ...
- 费马小定理 Fermat Theory
w 整数的质数次方和自身的差是是质数的倍数 费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且Gcd(a,p)=1,那么 a(p-1)≡1(mod p).即: ...
- 费马小定理证明 (copy的,自己捋清楚)
费马小定理:假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p) 证明(copy的百度百科,加点自己的解释) 引理1. 若a,b,c为任意3个整数,m为正整数,且(m,c)=1 ...
- 【初等数论】费马小定理&欧拉定理&扩展欧拉定理(暂不含证明)
(不会证明--以后再说) 费马小定理 对于任意\(a,p \in N_+\),有 \(a^{p-1} \equiv 1\pmod {p}\) 推论: \(a^{-1} \equiv a^{p-2} \ ...
- 逆元 exgcd 费马小定理 中国剩余定理的理解和证明
一.除法取模逆元 如果我们要通过一个前面取过模的式子递推出其他要取模的式子,而递推式里又存在除法 那么一个很尴尬的事情出现了,假如a[i-1]=100%31=7 a[i]=(a[i-1]/2)%31 ...
- 数论初步(费马小定理) - Happy 2004
Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2 ...
- CodeForces 300C Beautiful Numbers(乘法逆元/费马小定理+组合数公式+高速幂)
C. Beautiful Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- 学习:费马小定理 & 欧拉定理
费马小定理 描述 若\(p\)为素数,\(a\in Z\),则有\(a^p\equiv a\pmod p\).如果\(p\nmid a\),则有\(a^{p-1}\equiv 1\pmod p\). ...
- HDU 5651 计算回文串个数问题(有重复的全排列、乘法逆元、费马小定理)
原题: http://acm.hdu.edu.cn/showproblem.php?pid=5651 很容易看出来的是,如果一个字符串中,多于一个字母出现奇数次,则该字符串无法形成回文串,因为不能删减 ...
随机推荐
- 尝试自己搭一个简单的typescript运行环境
开发typescript项目有一些现成的脚手架,比如:typescript-library-starter,它的配置齐全,更适合用在实际项目开发上.其实在学习阶段可以自己搭建一个简单的typescri ...
- 对C++类的继承和派生的理解
C++中的继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承类似,例如儿子继承父亲的财产. 1.继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程. ...
- 线性基求交(线段树)--牛客第四场(xor)
题意: 给你n个基,q个询问,每个询问问你能不能 l~r 的所有基都能表示 x . 思路: 建一颗线性基的线段树,up就是求交的过程,按照线段树区间查询的方法进行check就可以了. #define ...
- js设计模式--发布订阅模式
前言 本系列文章主要根据<JavaScript设计模式与开发实践>整理而来,其中会加入了一些自己的思考.希望对大家有所帮助. 概念 发布-订阅模式又叫观察者模式,它定义对象间的一种一对多的 ...
- 引入DDT
一.大致介绍: DDT-Data Driven Test 是Python的第三方库,提供了创建数据驱动的测试,在线安装为:pip install ddt @data 表示元祖的列表数据 @unpack ...
- Git提交代码的小知识
1.需要切换到项目目录下并创建一个Repository用于提交代码到这个仓库里 cd /g/....//cd后面有空格,用于进入某个项目文件夹 git init//用于创建Repository 2.添 ...
- 08 nginx+uWSGI+django+virtualenv+supervisor发布web服务器
一.为什么要用nginx,uwsgi? 1 首先nginx 是对外的服务接口,外部浏览器通过url访问nginx, 2nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静 ...
- linux之信息查看
在使用Linux操作系统的时候,有时候会需要了解当前使用的系统版本信息,特别是在给别人进行服务器部署运维的时候,准确的系统版本信息至关重要 查看linux内核版本信息: cat /proc/vers ...
- Tcp之心跳包
Tcp之心跳包 心跳包 跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着. 事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很 ...
- SDRAM介绍
一. 介绍 存储器的最初结构为线性,它在任何时刻,地址线中都只能有一位有效.设容量为N×M的存储器有S0-Sn-1条地址线:当容量增大时,地址选择线的条数也要线性增多,利用地址 ...