summaryrefslogtreecommitdiff
path: root/math/extendedEuclid.cpp
blob: ecf4a162b8b6128d2c2419d64bf7abeb13df55ad (plain)
1
2
3
4
5
6
// a*x + b*y = ggt(a, b)
array<ll, 3> extendedEuclid(ll a, ll b) {
	if (a == 0) return {b, 0, 1};
	auto [d, x, y] = extendedEuclid(b % a, a);
	return {d, y - (b / a) * x, x};
}