给出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
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll x,y;
ll exgcd(ll a,ll b){
if(b==){
x=;y=;return a;
}
int g=exgcd(b,a%b);
int t=x;
x=y;
y=t-a/b*y;
return g;
} int main(){
ll a,b,c;
scanf("%lld%lld",&a,&b);
int g=exgcd(a,b);
printf("%lld\n",(x%b+b)%b);
return ;
}无话可说,QAQ