galois.gcd

galois.gcd(a, b)

Finds the integer multiplicands of \(a\) and \(b\) such that \(a x + b y = \mathrm{gcd}(a, b)\).

This implementation uses the Extended Euclidean Algorithm.

Parameters
  • a (int) – Any integer.

  • b (int) – Any integer.

Returns

  • int – Greatest common divisor of \(a\) and \(b\).

  • int – Integer \(x\), such that \(a x + b y = \mathrm{gcd}(a, b)\).

  • int – Integer \(y\), such that \(a x + b y = \mathrm{gcd}(a, b)\).

References

Examples

In [346]: a = 2

In [347]: b = 13

In [348]: gcd, x, y = galois.gcd(a, b)

In [349]: gcd, x, y
Out[349]: (1, -6, 1)

In [350]: a*x + b*y == gcd
Out[350]: True