1256 乘法逆元
阿新 • • 發佈:2018-04-23
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 3Output示例
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 乘法逆元