Pagini recente » Istoria paginii utilizator/ucv_georgescu | Cod sursa (job #1487514) | Cod sursa (job #65791) | Rating Darius Bandila (darius1709) | Cod sursa (job #2183374)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream in("inversmodular.in");
ofstream out("inversmodular.out");
ll a, b, c, d, x, y;
void euclid(ll a, ll b, ll &d, ll &x, ll &y){
if(b == 0){
d = a;
x = 1;
y = 0;
} else {
ll x0, y0;
euclid (b, a % b, d, x0, y0);
x = y0;
y = x0 - y0 * (a / b);
}
}
int main(){
in >> a >> b;
euclid(a, b, d, x, y);
while(x < 0)
x += b;
out << x;
return 0;
}