“ Ctrl AC!一起 AC!”

费马小定理可以用来求乘法逆元。

费马小定理:P为质数时且gcd(A,P)==1,则A^(P-1)=1(在mod P的条件下)。

乘法逆元:A*B=1(mod P情况下),A与B互为乘法逆元。

所以当 P为质数时且gcd(A,P)==1 时:

A*B=A^(P-1) ---> B=A^(P-2)

这样只要对A^(P-2)来个快速幂,就能得出A的乘法逆元

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll binaryPow(ll a,ll b,ll m){ //(a^b)%mll ans=1;while(b>0){if(b&1){ans=ans*a%m;}a=a*a%m;b>>=1;}return ans;
}
int main(){ll num,P;cin>>num>>P;cout<<"The niyuan is: "<<binaryPow(num,P-2,P)<<endl;return 0;
}

感谢阅读!!!

“ Ctrl AC!一起 AC!”

【算法小结】费马小定理相关推荐

  1. C++实现伪大素数生成算法(费马小定理判别法、米勒拉宾素数判定法)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.伪大素数生成原理 方法一 方法二 数学基础 二.费马小定理判别法 1.算法 2.代码实现 3.运行结果 二.米勒拉宾素数 ...

  2. 关于素数常用结论--威尔逊定理、欧拉定理、费马小定理、米勒罗宾算法

    再需要判定的数比较大时,用枚举法肯定不行的,但目前数学界也没有任何一种又快又准确的判定素数的方法,并且也证明了素数不存在任何一种通项表达式.但作为初等数论中最大的一部分内容,数学家们对素数性质进行了大 ...

  3. C++ Fermat‘s little theorem费马小定理寻找模逆实现算法(附完整源码)

    C++ Fermat's little theorem费马小定理寻找模逆实现算法 C++ Fermat's little theorem费马小定理寻找模逆实现算法完整源码(定义,实现,main函数测试 ...

  4. 费马小定理 素性判断 蒙哥马利算法

    转载于http://blog.csdn.net/arvonzhang/article/details/8564836 1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所 ...

  5. 费马小定理 素数判定 蒙哥马利算法

    转自:http://www.cnblogs.com/Knuth/archive/2009/09/04/1559949.html 约定: x%y为x取模y,即x除以y所得的余数,当x<y时,x%y ...

  6. 算法 {欧拉函数,欧拉定理,费马小定理}

    欧拉函数 定义 ϕ ( x ) , x ∈ N + \phi(x), \ \ x \in N^+ ϕ(x),  x∈N+ means the number of y ∈ N + y \in N^+ y ...

  7. c语言生成两位随机素数算法,[算法]费马小定理求质数的算法之Miller-Rabin算法,C语言实现 | 李大仁博客...

    今天讲点比较高级的算法,目的也很简单,求质数,但是应用一种新的算法Miller-Rabin算法,这是一种利用了概率和费马小定理的算法设计,有点玄乎吧,其实本人也是刚接触这种算法,这是一种纯数学的解法, ...

  8. 小结:数论四大定理(威尔逊定理+欧拉定理+中国剩余定理+费马小定理)

    前置知识: 模运算消去律:ac ≡ bc (mod p) → a ≡ b (mod p/gcd(c,p) ) 威尔逊定理: 当且仅当p为素数时,( p -1 )! ≡ -1 ( mod p ) 当且仅 ...

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

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

最新文章

  1. Linux负载均衡实现
  2. vue this.$router.push()传参
  3. 贝佐斯成功拉下马斯克,NASA把SpaceX的独家登月合同暂停了
  4. python学习路线-Python最佳学习路线
  5. mysql支持UUID做外键_Mysql中以uuid为外键插入多条数据,怎样实现同一个二级分类外键关联的数据为同一个uuid的值...
  6. window10最全win键组合技巧(win10快捷键)
  7. SQL Server 查询性能优化——覆盖索引(二)
  8. 为什么nodejs是单进程的_Nodejs探秘:深入理解单线程实现高并发原理
  9. maya为什么不能导出fbx_Maya在操作中最容易出现的几个问题,现在注意还来得及...
  10. java集合框架 改写_Java集合框架1
  11. php100视频教程下载(全集),下载地址链接(整理后包涵解压密码)
  12. python爬取高德poi数据_高德地图之python爬取POI数据及其边界经纬度
  13. 《程序员面试宝典》中的一些面试题
  14. 桌面麒麟系统添加字体
  15. 记录第一个 python项目 外星人入侵小游戏
  16. 一名优秀的数据分析师,应该具备哪些基本素质?
  17. 计算机考试分值2017,2017计算机二级考试应试技巧
  18. STM32三种BOOT模式
  19. 【阿里云ACE】北京新春活动
  20. 方案开发,做一个口袋秤的芯片方案设计

热门文章

  1. ubuntu vi/vim退出文件
  2. 如何选择服务器的类型
  3. VS插件--Resharper
  4. linux能运行安卓模拟器吗,Android模拟器的使用方法(Linux)
  5. 远程计算机或设备将不接受连接,IE无法上网
  6. MySQL数据库之备份与恢复
  7. 玩一玩Spring容器(可视化笔记02)
  8. boost库的安装和使用
  9. 副主任医师计算机英语,医院职称的英语叫法
  10. 百度站长平台使用教程:死链提交