当前位置: 首页 > news >正文

【Fermat】费马小定理

 

定理


若存在整数 a , p 且g c d ( a , p ) = 1 gcd(a,p)=1gcd(a,p)=1,即二者互为质数,则有
a ( p − 1 ) ≡ 1 ( m o d p ) a^{(p-1)}≡ 1(mod p)

(p−1)
 ≡1(modp)

目录

定理

引理

引理一

引理二

证明

应用

代码


 

引理

引理一


若a,b,c为任意3个整数,m为正整数,且g c d ( m , c ) = 1 gcd(m,c)=1gcd(m,c)=1,则当a ∗ c ≡ b ∗ c ( m o d   m ) a*c\equiv b*c(mod\ m)a∗c≡b∗c(mod m)时,有a ≡ b ( m o d   m ) a\equiv b(mod\ m)a≡b(mod m)。

引理二


设m是一个整数且m>1,b是一个整数且(m,b)=1。如果a[1],a[2],a[3],a[4],…a[m]是模m的一个完全剩余系,则b·a[1],b·a[2],b·a[3],b·a[4],…b·a[m]也构成模m的一个完全剩余系。

证明

若存在2个整数b·a[i]和b·a[j]同余即b·a[i]≡b·a[j](mod m)…(i>=1 && j>=1),根据引理1则有a[i]≡a[j](mod m)。根据完全剩余系的定义可知这是不可能的,因此不存在2个整数b·a[i]和b·a[j]同余。
所以b·a[1],b·a[2],b·a[3],b·a[4],…b·a[m]构成模m的一个完全剩余系。
构造素数 的完全剩余系
p={1,2,3,…,p-1}.
因为 ,由引理2可得
A={a,2a,3a,…,(p-1)a}.
也是p的一个完全剩余系。由完全剩余系的性质,
123*…(p-1)≡a2a3a…*(p-1)a(mod p).

( p − 1 ) ! ≡ ( p − 1 ) ! ∗ a ( p − 1 ) ( m o d   p ) (p-1)!≡(p-1)!*a^{(p-1)}(mod\ p)(p−1)!≡(p−1)!∗a 
(p−1)
 (mod p)
易知 ((p-1)!,p)=1,同余式两边可约去(p-1)!,得到
a ( p − 1 ) ≡ 1 ( m o d p ) a^{(p-1)}≡1(mod p)a 
(p−1)
 ≡1(modp)

逆元:ax≡1(mod p)当a和p互质时,方程的解 x 称为a关于p的逆元,

在普通的四则运算中,只有加减乘三种运算可以进行分别取余运算,因为这三种运算都是从低位到高位的运算,而对于除法是从高位到低位的运算,显然不能直接进行取余,这时候,就要用到逆元有关的运算。

逆元可以近似的看作倒数的概念

应用


例如,

如果要求(x / y)%p ,显然不可以(x%p)/(y%p),

利用逆元运算:可以将(x / y)%p化为 (x * Y )%p ,其中Y是y关于p的逆元

那么怎么求Y呢:

由逆元的定义,有y • Y≡1(mod p),

费马小定理:如果p是一个质数,而整数a不是p的倍数,则有a^(p-1)≡ 1(mod p)。

我们分离一项出来 a • a ( p − 2 ) ≡ 1 ( m o d   p ) a • a^{(p-2)} ≡ 1(mod\ p)a•a 
(p−2)
 ≡1(mod p).

对比逆元的方程式,可以很容易得到,a关于p的逆元就是 a ( p − 2 ) a^{(p-2)}a 
(p−2)
 ,那么Y = y ( p − 2 ) 。 Y=y^{(p-2)}。Y=y 
(p−2)
 。

代码

根据上述推断,根据快速幂可推得:


/* 除法取模模板 */
ll quick(ll a,ll b,ll c)//快速幂取模 
{ll ans=1;a%=c;while(b){if(b&1) ans=ans*a%c;a=a*a%c;b>>=1;}	return ans%c;
}ll divi(ll a,ll b,ll p)
{b=quick(b,p-2,p);	//b的逆元return a*b%p; 
}

相关文章:

【Fermat】费马小定理

定理 若存在整数 a , p 且g c d ( a , p ) 1 gcd(a,p)1gcd(a,p)1,即二者互为质数,则有 a ( p − 1 ) ≡ 1 ( m o d p ) a^{(p-1)}≡ 1(mod p) a (p−1) ≡1(modp) 目录 定理 引理 引理一 引理二 证…...

NVMe(Non-Volatile Memory Express)非易失性存储器访问和传输协议

目录 NVMe(Non-Volatile Memory Express)非易失性存储器访问和传输协议 一、NVMe的定义 二、NVMe的特点 三、NVMe的应用场景 四、举例说明 NVMe(Non-Volatile Memory Express)非易失性存储器访问和传输协议 是一种非易失性存储器访问和传输协议,专为固态硬盘(SSD)…...

C++初阶——queue

一、什么是queue 是一个容器适配器,专门设计用于在先进先出(FIFO,First In First Out)的上下文中操作。它是一个容器适配器,这意味着它不是一个完整的容器类,而是封装了一个特定的容器类(如list…...

达梦数据库迁移j脚本

国产环境使用达梦数据库的越来越多&#xff0c;除了使用管理工具&#xff0c;还是可以使用脚本。 下面简单记录下&#xff0c;我在迁移中遇到的问题&#xff1a; 备份脚本 使用此脚本可以一次备份一个数据 backup_one_db.sh #!/bin/bashexport DB$1 export PASS<your_p…...

【Linux】内核调用栈打印函数dump_stack使用效果

init/main.c的start_kernel示例&#xff0c;这个调用栈不太深&#xff1a; /var/log/dmesg日志&#xff1a; [ 0.000000] kernel: [init/main.c start_kernel 911] start_kernel(void) [ 0.000000] kernel: [kernel/panic.c print_tainted 519 LOG_TIMES: 1 ] [ 0.…...

Uniapp踩坑input自动获取焦点ref动态获取实例不可用

前言 大家好我是没钱的君子下流坯&#xff0c;用自己的话解释自己的知识。很久很更新了&#xff0c;这几个月一直在加班&#xff0c;今天记录一个uniapp关于input中focus()方法自动获取焦点的坑。 案例 为了实现一个手机验证码的页面&#xff0c;验证码是五个输入框&#xf…...

数据分析-47-时间序列变点检测之离线历史数据的CPD

文章目录 1 时间序列结构1.1 变化点的定义1.2 结构变化的类型1.2.1 水平变化1.2.2 方差变化1.3 变点检测1.3.1 离线数据检测方法1.3.2 实时数据检测方法2 模拟数据2.1 模拟恒定方差数据2.2 模拟变化方差数据3 离线数据变点检测3.1 Ruptures模块3.2 恒定方差CPD3.3 变化方差CPD4…...

加入GitHub Spark需要申请

目录 加入GitHub Spark需要申请 GitHub Spark 一、产品定位与特点 二、核心组件与功能 三、支持的AI模型 四、应用场景与示例 五、未来展望 六、申请体验 加入GitHub Spark需要申请 GitHub Spark 是微软旗下GitHub在2024年10月30日的GitHub Universe大会上推出的一款革…...

生成式GPT商品推荐:精准满足用户需求

生成式GPT商品推荐&#xff1a;精准满足用户需求 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;电商平台正在逐步迎来一场前所未有的变革。尤其是生成式GPT&#xff08;Generative Pre-trained Transformer&#xff09;技术的应用&#xff0c;正在重新定…...

async 和 await的使用

一、需求 点击按钮处理重复提交&#xff0c;想要通过disabled的方式实现。 但是点击按钮调用的方法里有ajax、跳转、弹窗等一系列逻辑操作&#xff0c;需要等方法里流程都走完&#xff0c;再把disabled设为false&#xff0c;这样下次点击按钮时就可以继续走方法里的ajax等操作…...

Spring Cloud Vault快速入门Demo

1.什么是Spring Cloud Vault&#xff1f; Spring Cloud Vault 是 Spring Cloud 生态系统中的一个项目&#xff0c;旨在简化 Spring 应用程序与 HashiCorp Vault 的集成。它提供了一种方便的方式来管理和访问应用程序的敏感配置数据&#xff0c;如数据库凭证、API 密钥和其他机…...

道陟科技EMB产品开发进展与标准设计的建议|2024电动汽车智能底盘大会

11月12日&#xff0c;2024电动汽车智能底盘大会在重庆开幕。会议由中国汽车工程学会主办&#xff0c;电动汽车产业技术创新战略联盟、中国汽车工程学会智能底盘分会、智能绿色车辆与交通全国重点实验室承办。本届大会围绕电动汽车智能底盘相关技术发展与融合&#xff0c;满足高…...

GitHub Org

运营一个GitHub Org&#xff08;组织&#xff09;是一个复杂但充满价值的过程&#xff0c;它涉及多个方面&#xff0c;包括项目管理、团队协作、代码审查、文档维护、社区建设等。以下是一篇关于如何运营GitHub Org的详细指南&#xff0c;旨在帮助组织者更好地管理和维护其GitH…...

unity小:shaderGraph不规则涟漪、波纹效果

实现概述 在本项目中&#xff0c;我们通过结合 Sine、Polar Coordinates 和 Time 节点&#xff0c;实现了动态波纹效果。以下是实现细节&#xff1a; 核心实现 Sine 波形生成&#xff1a; 使用 Sine 节点生成基本的波形。该节点能够创建周期性变化&#xff0c;为波纹效果提供…...

【JavaScript】JavaScript开篇基础(6)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…...

Spark RDD、DStream、DataFrame、DataSet 在窗口操作上的区别

Spark RDD、DStream、DataFrame、DataSet 在窗口操作上的区别 1. Spark RDD 是否支持窗口操作&#xff1a; RDD 本身没有专门的窗口操作算子。原因&#xff1a; RDD 是一个弹性分布式数据集&#xff0c;设计为通用的、不可变的操作单元&#xff0c;主要用于批处理场景。窗口函…...

http自动发送请求工具(自动化测试http请求)

点击下载《http自动发送请求工具(自动化测试http请求)》 前言 在现代软件开发过程中&#xff0c;HTTP 请求的自动化测试是确保应用程序稳定性和可靠性的关键环节。为了满足这一需求&#xff0c;我开发了一款功能强大且易于使用的自动化 HTTP 请求发送工具。该工具基于 C# 开发…...

网络IP地址会经常换吗?深入解析与实操指南

在互联网的生态系统中&#xff0c;IP地址&#xff08;Internet Protocol Address&#xff09;是每台连接设备的唯一标识符&#xff0c;它在网络通信中起着至关重要的作用。然而&#xff0c;不少用户观察到自己的IP地址有时会发生变化&#xff0c;这引发了诸多疑问。本文旨在详细…...

MapLocNet由粗到细的定位网络

论文链接 MapLocNet: Coarse-to-Fine Feature Registration for Visual Re-Localization in Navigation Mapshttps://arxiv.org/html/2407.08561v1 问题背景 当前自动驾驶的定位主要依赖于高精度的地图和GPS信号&#xff0c;但在城市环境中&#xff0c;GPS信号易受到多路径传…...

【Docker】Mac安装Docker Desktop导致磁盘剩余空间较少问题如何解决?

目录 一、背景描述 二、解决办法 三、清理效果 四、理论参考 解决方法 1. 清理未使用的 Docker 镜像、容器和卷 2. 查看 Docker 使用的磁盘空间 3. 调整 Docker 的存储位置 4. 增加磁盘空间 5. 调整 Docker Desktop 配置 6. 使用 Docker 清理工具&#xff08;例如 D…...

WinSW实战:除了开机自启,这样配置还能监控你的Nacos服务状态与日志

WinSW进阶实战&#xff1a;构建Nacos服务的全方位监控体系 对于许多使用Nacos作为注册中心和配置中心的团队来说&#xff0c;确保其稳定运行是系统可靠性的基石。虽然通过WinSW将Nacos注册为Windows服务并实现开机自启解决了基础问题&#xff0c;但真正的挑战在于服务运行后的状…...

互联网大厂 Java 求职面试全景:从音视频场景到微服务架构的深入探讨

互联网大厂 Java 求职面试全景&#xff1a;从音视频场景到微服务架构的深入探讨 在互联网大厂的招聘中&#xff0c;Java 开发者的面试不仅技术含量高&#xff0c;还充满了戏剧性。今天&#xff0c;我们将通过一位求职者燕双非与面试官的对话&#xff0c;带你走进这个复杂而有趣…...

CVPR 2023风向解读:多模态与扩散模型如何重塑计算机视觉

1. 从顶会风向标&#xff0c;看计算机视觉的“现在进行时”又到了年中盘点的时候&#xff0c;对于计算机视觉&#xff08;CV&#xff09;圈子的从业者、学生和研究者来说&#xff0c;每年CVPR的论文录用情况&#xff0c;就是一张最权威的“技术晴雨表”。它不只是一份论文列表&…...

如何通过QuickLookVideo实现Mac视频预览效率革命:终极工具深度解析

如何通过QuickLookVideo实现Mac视频预览效率革命&#xff1a;终极工具深度解析 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: ht…...

AI大模型时代:小白程序员必备!抓住机遇,收藏这份企业发展指南

AI大模型正深刻改变企业与市场格局。本文探讨了AI大模型对企业效率、决策、商业模式及竞争力的提升作用&#xff0c;并揭示了市场、技术、人才与合作四大机遇。企业需加强技术研发、培养人才、优化流程、创新模式&#xff0c;并注重数据安全与行业合作。紧跟AI大模型浪潮&#…...

3分钟学会TV Bro浏览器:智能电视上网终极指南

3分钟学会TV Bro浏览器&#xff1a;智能电视上网终极指南 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为智能电视设计的安卓网页浏览器&#xff0c;通…...

TC2526 低功耗原边反馈开关电源芯片

概述 TC2526 是一款低功耗原边反馈&#xff08;PSR&#xff09;开关电源芯片&#xff0c;其内部集成了大功率 BJT 管&#xff0c;适用于隔离型的高效低功耗便携式设备充电器应用。TC2526 采用独特具有恒流恒压功能的原边反馈控制技术&#xff0c;以及独特的轻载调频技术降低轻载…...

3步掌握CSDN博客下载器:革命性批量下载与智能离线阅读终极方案

3步掌握CSDN博客下载器&#xff1a;革命性批量下载与智能离线阅读终极方案 【免费下载链接】CSDNBlogDownloader 项目地址: https://gitcode.com/gh_mirrors/cs/CSDNBlogDownloader 在信息时代&#xff0c;技术博客是我们获取知识的重要窗口&#xff0c;但网络内容的不…...

【免费下载】 Maven 3.8.5 压缩包下载【maven下载安装与配置】

Maven 3.8.5 压缩包下载 简介 本仓库提供 Maven 3.8.5 版本的压缩包下载。Maven 是一个强大的项目管理和构建自动化工具&#xff0c;广泛应用于 Java 项目的开发中。 资源文件 文件名: maven3.8.5压缩包描述: Maven 3.8.5 版本的压缩包 下载链接 请点击以下链接下载 Mave…...

番茄小说下载器:3分钟构建个人离线图书馆的终极指南

番茄小说下载器&#xff1a;3分钟构建个人离线图书馆的终极指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 还在为小说网站广告太多而烦恼吗&#xff1f;想要随时随地离线…...