[ Arithmetic | Reference Manual | Alphabetic Index ]

gcd(+Number1, +Number2, -U, -V, -GCD)

Unifies GCD with the Greatest Common Divisor of Number1 and Number2, and gives appropriate coefficients U and V for the corresponding Bezout equation
Number1
Integer.
Number2
Integer.
U
Output: integer.
V
Output: integer.
GCD
Output: integer.

Description

The Greatest Common Divisor operation is only defined on integer arguments.

This predicate can be used as a function in arithmetic expressions. In coroutining mode, if Number1 or Number2 are uninstantiated, the call is delayed until these variables are instantiated.

The Bezout equation is Number1*U + Number2*V = GCD. These coefficients are calculated by an extended version of Euclid's algorithm.

Modes and Determinism

Exceptions

(4) instantiation fault
Number1 or Number2 is not instantiated (non-coroutining mode only).
(5) type error
Number1 or Number2 is a number but not an integer.
(24) number expected
Number1 or Number2 is not of a numeric type.

Examples

Success:
      gcd(9, 15, 2, -1, 3).
      gcd(-9, 15, -2, -1, 3).
      gcd(2358352782,97895234896224,U,V,G).  % gives U = 2130001290117, V = -51312962, G = 6 

Error:
      gcd(A, 2, U, V, G).           (Error 4).
      gcd(1.0, 2, U, V, G).         (Error 5).
      gcd(4 + 2, 2, U, V, G).       (Error 24).

See Also

gcd / 3, lcm / 3, is / 2