[ 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
- gcd(+, +, -, -, -) is det
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