1. 程式人生 > >1256 乘法逆元

1256 乘法逆元

bsp int 基礎題 fas 如果 std bbb spa AI

1256 乘法逆元 基準時間限制:1 秒 空間限制:131072 KB 分值: 0 難度:基礎題 給出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


純粹的求逆元

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int exgcd(int a,int b,int &x,int &y){
 6     if(b==0){
 7         x=1,y=0;
 8         return a;
 9     }
10     int r = exgcd(b,a%b,x,y);
11     int t = x;
12     x = y;
13     y = t-(a/b)*y;
14     return r;
15 } 16 int main(){ 17 int n,m; 18 cin>>n>>m; 19 int x,y; 20 int p = exgcd(n,m,x,y); 21 cout<<(x+m)%m<<endl; 22 return 0; 23 }

1256 乘法逆元