给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。

Input

输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9)

Output

输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。

Sample Input

2 3

Sample Output

2

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long ll;
ll m,n,k;
void extend_Euclid(ll a,ll b,ll &x,ll &y)
{if(b==0){x=1;y=0;return;}extend_Euclid(b,a%b,x,y);int tmp=x;x=y;y=tmp-(a/b)*y;
}
int main()
{int i,j,k;ll x,y;scanf("%lld%lld",&m,&n);extend_Euclid(m,n,x,y);while(x<0){x+=n;}printf("%d\n",x);return 0;
}

乘法逆元(ex_gcd和同余定理)相关推荐

  1. 和与余数的和同余理解_模和同余定理

    一.什么是余数 在整数的除法中,只有能整除与不能整除两种情况.当不能整除时,就产生余数.我们在读小学二年级时,已经学了带余数的出发了,我们来温习一下. 通过做了这么多年除法,我们可以理解到,余数是指整 ...

  2. 扩展欧几里得算法、乘法逆元与中国剩余定理

    文章目录 前言 定义.定理和部分证明 整除 定义 定理 定理的证明 同余 定义 同余的性质 同余的运算律 运算律的证明 扩展欧几里得算法 代码模板 算法详解 乘法逆元 求解逆元 乘法逆元的作用 中国剩 ...

  3. 数学--数论--HDU 4675 GCD of Sequence(莫比乌斯反演+卢卡斯定理求组合数+乘法逆元+快速幂取模)

    先放知识点: 莫比乌斯反演 卢卡斯定理求组合数 乘法逆元 快速幂取模 GCD of Sequence Alice is playing a game with Bob. Alice shows N i ...

  4. 乘法逆元 java_乘法逆元

    转自:https://www.bilibili.com/video/BV12E411c7QH ≡ 一,引入 (a+b)%p = (a%p + b%p) %p (a - b) %p = ( a%p + ...

  5. luogu P2613 【模板】有理数取余(费马小定理,乘法逆元)

    整理的算法模板合集: ACM模板 目录 题目传送门 题目传送门 相当于是一个高精的费马小定理求乘法逆元.虽然数据达到了101000110^{10001}1010001,但是我们可以使用快读然后一直模m ...

  6. 乘法逆元、扩展欧几里得算法、二元一次方程、a的n次方取余

    知识点:乘法逆元,逆元的求法,二元一次方程求通解,a的n次方求余数 一,乘法逆元 乘法逆元的概念类似于倒数(ax=1,a−1=xax=1,a^{-1}=x),不过是在取余数的情况下的倒数. 如果(a× ...

  7. ACM竞赛、数论内容常用的定理(求解(a/b)%c,乘法逆元,费马小定理)

    如果b与c互素,则(a/b)%c=a*b^((c)-1)%c其中是欧拉函数.或者(a/b)%c=a*b^(c-2)%c 如果b与c不互素,则(a/b)%c=(a%bc)/b 对于b与c互素和不互素都有 ...

  8. 【BZOJ】3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(排列组合+乘法逆元+欧拉定理/费马小定理)...

    http://www.lydsy.com/JudgeOnline/problem.php?id=3398 以下牡牛为a,牝牛为b. 学完排列计数后试着来写这题,"至少"一词可以给我 ...

  9. 同余定理 逆元 中国剩余定理 费马小定理

    同余定理 同余定理是数论中的重要概念.给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m). 两个整数a ...

  10. gcd + 扩展欧几里得定理+递推乘法逆元(模板)

    gcd: int gcd(int a, int b){ return b==0? a: gcd(b, a%b); } 扩张欧几里得定理: 扩展欧几里德算法是用来在已知a, b求解一组x,y使得ax+b ...

最新文章

  1. 定时器 线程池\进程池
  2. python用户登录程序_「Python」每日一练:函数的应用之注册登录程序
  3. aes256 加密后的长度_视频会议Zoom 5.0版本重大更新,增强加密功能提供更多安全选项...
  4. 了解SQL Server触发器及触发器中的事务
  5. Sublime Text 插件之常用20个插件
  6. Python:Anaconda安装虚拟环境到指定路径
  7. linux 安装vsftpd服务器,linux安装vsftpd和vsftpd配置步骤
  8. 升级dedecms5.5后,出现提示保存目录数据时失败,请检查你的输入资料是否存在问题...
  9. 我的天哪我有博客了!
  10. ping和telnet
  11. python内置对象的实现_Python面向对象——内置对象的功能扩展
  12. 特斯拉电池检测_电动车开几年衰减大电池不行了?特斯拉:在我这儿不是事儿...
  13. Win11改Win10右键菜单
  14. 使用Zip命令进行本地提权(类Unix系统)
  15. 腾讯云和百度贴吧web端支付成功页面模板(根据实际页面修改整理)
  16. uni-app 小程序跳转微信小程序及APP端(安卓/ios)
  17. 20款优秀的免费代码编辑器
  18. Java———猴子偷桃(递归函数)
  19. css样式字体文本汇总
  20. 时空旅行[线段树分治][维护凸壳]

热门文章

  1. Ambari——大数据平台的搭建利器之进阶篇[配置spark]
  2. 我国启动新型数据保护密码算法研究
  3. memcached 快速入门
  4. KVC 与 KVO 理解
  5. 运维自动化之zabbix(添加Graph screen)(3)
  6. 不可忽视的IT运维管理
  7. Mac Brew Uninstall MySql
  8. Oracle中使用批处理文件批量建表
  9. 集体智慧编程Python
  10. 用C#实现***程序