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

lanqiaoOJ 4185:费马小定理求逆元

【题目来源】
https://www.lanqiao.cn/problems/4185/learning/

【题目描述】
给出 n,p,求 n^{-1} \ mod \ p。其中,n^{-1} \ mod \ p 指存在某个整数 0≤a<p,使得 na mod p=1,此时称 a 为 n 的逆元,即 a=n^{-1}。数据保证
p 是质数且 n mod p≠0。

【输入格式】
输入包含一行,为两个整数 n,p。

【输出格式】
输出包括一行,为一个整数,表示 n^{-1} \ mod \ p

【输入样例】
3 5

【输出样例】
2

【说明】
3×2 mod 5=1,所以 2=3^{-1}

【评测数据规模】
对于100%的评测数据,1≤n, p≤
10^9+7

【算法分析】
● 本题本质是求解同余方程
nx≡1(mod p) 的解。注意:题目中的 n^{-1} 表示 n 的逆元,是一个表示符号,而不是数学中的 n 分之一
● 由于 p 是质数且 gcd(n,p)=1,所以可以用
费马小定理求解。在此约束下,特别是当模数 p 特别大的时候,由于快速幂的加持,更优先推荐使用费马小定理求逆元。

【算法代码】

#include <bits/stdc++.h>
using namespace std;typedef long long LL;LL fastPow(LL a,LL n,LL p) {LL ans=1;while(n) {if(n & 1) ans=ans*a%p;n>>=1;a=a*a%p;}return ans%p;
}int main() {LL n,p;cin>>n>>p;cout<<fastPow(n,p-2,p);return 0;
}/*
in:3 5
out:2
*/






【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/148008443
https://blog.csdn.net/hnjzsyjyj/article/details/147980706




 

http://www.xdnf.cn/news/7903.html

相关文章:

  • 自定义类型:联合和枚举
  • 代码管理平台Gitlab如何通过快解析实现远程访问?
  • Ulisses Braga-Neto《模式识别和机器学习基础》
  • LangChain4j入门AI(七)Function Calling整合实际业务
  • 龙虎榜——20250521
  • 【图像大模型】基于深度对抗网络的图像超分辨率重建技术ESRGAN深度解析
  • 【android bluetooth 协议分析 02】【bluetooth hal 层详解 3】【高通蓝牙hal主要流程介绍-上】
  • 最新版Chrome浏览器调用ActiveX控件技术——alWebPlugin中间件V2.0.42版发布
  • 数据结构(4)线性表-链表-双链表
  • springboot3+vue3融合项目实战-大事件文章管理系统-自定义校验
  • 实现一个带有授权码和使用时间限制的Spring Boot项目
  • Unity异步加载image的材质后,未正确显示的问题
  • 系统设计应优先考虑数据流还是控制流?为什么优先考虑数据流?数据流为主、控制流为辅的架构原则是什么?控制流优先会导致哪些问题?
  • 【图数据库】--Neo4j 安装
  • 【单片机】如何产生负电压?
  • 基于STM32的骑行语音播报系统
  • 垃圾回收(GC)基础原理全面解析
  • Spark大数据分与实践笔记(第五章 HBase分布式数据库-02)
  • 【软件设计师】计算机网络考点整理
  • FEKO许可证与其他软件的集成
  • Web服务器(Tomcat)
  • linux中安装jdk(Java环境),tomcat
  • 5分钟搭建智能看板:衡石科技自助式BI工具使用教程
  • 更新ubuntu软件源遇到GPG error
  • 【css】 flex布局基本知识
  • Nginx 核心功能与 LNMP 环境搭建深度笔记
  • Android多线程下载文件拆解:原理、实现与优化
  • HarmonyOS 应用开发,如何引入 Golang 编译的第三方 SO 库
  • 第二章:Android常用UI控件
  • Nova Launcher:个性化安卓桌面,打造专属体验