Pagini recente » Cod sursa (job #2165429) | Monitorul de evaluare | Cod sursa (job #2033514) | Cod sursa (job #2491340) | Cod sursa (job #2255718)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
//ifstream in("tst.in");
ifstream in("inversmodular.in");
ofstream out("inversmodular.out");
int t;
ll a, b, c, d, x, y;
void gcd(ll a, ll b, ll &d, ll &x, ll &y){
if(!b){
d = a;
x = 1;
y = 0;
} else {
ll x0, y0;
gcd(b, a % b, d, x0, y0);
x = y0;
y = x0 - (a / b) * y0;
}
}
int main(){
in >> a >> b;
gcd(a, b, d, x, y);
x = ((x % b) + b) % b;
out << x;
return 0;
}