【乘法逆元】1256 乘法逆元【51nod】【难度:基础题】
来源:互联网 发布:pes2018球员数据库 编辑:程序博客网 时间:2024/05/10 20:27
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1256
给出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,如果有多个满足条件的,输出最小的。
Input示例
2 3
Output示例
2
代码:
/* 方法一:m*(m^(phi[mod]-1)%mod)%mod=1; // 费马小定理; 方法二:inv[i]=inv[mod%i]*(mod-mod/i)%mod; 方法三:扩展欧几里得算法;exgcd();ax+by=1; K*M%N=1; => K*M=X*N+1; => K*M+(-X)*N=1;测试数据;7 8*/#include<iostream>using namespace std;int exgcd(int a,int b,int& x,int& y){ if(b==0){ x=1; y=0; return a; } int r=exgcd(b,a%b,x,y); int t=x; x=y; y=t-(a/b)*y; return r;}int main(){ int n,m,x,y; cin>>m>>n; exgcd(m,n,x,y); int k=(x%n+n)%n; cout<<k<<endl; return 0;}
0 0
- 【乘法逆元】1256 乘法逆元【51nod】【难度:基础题】
- 51 nod 乘法逆元
- 51nod 1256 (最基础)乘法逆元
- 51nod 1256 乘法逆元
- 51nod 1256 乘法逆元
- 51 nod 1256 乘法逆元
- 51nod:1256 乘法逆元
- 51nod-【1256 乘法逆元】
- 51nod 1256 乘法逆元
- [51NOD]1256 乘法逆元
- 51Nod 1256 乘法逆元
- 51nod 1256 乘法逆元
- 51nod 1256 乘法逆元
- 51Nod 1256 乘法逆元
- 51nod 1256 乘法逆元
- 51nod 1256 乘法逆元
- 51Nod 1256:乘法逆元
- 51nod 1256 乘法逆元
- hibernate的ID生成策略
- 30 Spark中的应用程序的注册过程及处理
- make命令
- 2016-05-18 Lending Club onsite interview
- QT经典错误:/usr/include/qt4/QtCore/qatomic_i386.h:132: error: impossible constraint in 'asm'
- 【乘法逆元】1256 乘法逆元【51nod】【难度:基础题】
- 排序算法之堆排序
- Think Android 的数据库用法(一)
- javaEE是什么
- dual vector space
- ios应用:release与debug编译方式的区别
- 更新到Xcode 7.3,iOS 9.3 SDK后,Theos导入private framework编译时报错的解决方案
- 自定义继承ListView控件实现下拉刷新底部加载的实现
- 实战ItemTouchHelper仿网易新闻客户端自定义栏目页面