summaryrefslogtreecommitdiff
path: root/math/extendedEuclid.cpp
blob: d016a63fbd2a514c5fa344116910d37a047e2b08 (plain)
1
2
3
4
5
6
7
// a*x + b*y = ggt(a, b)
ll extendedEuclid(ll a, ll b, ll& x, ll& y) {
	if (a == 0) {x = 0; y = 1; return b;}
	ll x1, y1, d = extendedEuclid(b % a, a, x1, y1);
	x = y1 - (b / a) * x1; y = x1;
	return d;
}