Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
gcd
Greatest (positive) Common Divisor
Syntax
gpcd = gcd(P) [gpcd, U] = gcd(P)
Arguments
- P
array of decimal integers, encoded integers, or of polynomials.
- gpcd
single element of
Ptype: the greatest common divisor of allPcomponents.- U
Square matrix of the
Ptype, with integer components or of minimal degrees. Its last columnB = U(:,$)holds Bezout coefficients, such thatB(1)*P(1) + B(2)*P(2) + .... + B($)*P($) == gpcd.
Description
[gpcd, U] = gcd(P) computes the greatest common divisor
gpcd of components of P, and an unimodular matrix
U.
If P components are decimal or encoded integers, they are priorly
converted into int64 signed integers.
If P has an unsigned inttype uint8,
uint16, uint32 or uint64,
U gets the corresponding signed inttype.
When P are integers, the returned GCD is always positive.
When a second output is expected, an unimodular matrix U of the
P type is returned, such that
size(U) == [length(P) length(P)]matrix(P,1,-1)*U = [0...0 gpcd]withlength(P)-1leading zerosdet(U)is1or-1.
Its last column provides Bezout coefficients.
![]() | gcd([0 0]) returns 0. |
![]() | For big P values (smaller but of the order of 2^63, depending also
on the number of input values), results may be corrupted by integer overflow and
wrapping (int8(127)+1 == -128). |
Examples
// With polynomials s = %s; p = [s s*(s+1)^2 2*s^2+s^3]; [GCD, U] = gcd(p) p*u // With encoded integers V = uint16([2^2*3^5 2^3*3^2 2^2*3^4*5]) [GCD, U] = gcd(V) typeof(GCD) typeof(U) V*U // With decimal integers V = [2^2*3^5 2^3*3^2 2^2*3^4*5]; [GCD, U] = gcd(V) type(GCD) type(U) V*U gcd([0 60]) gcd([0 0])
See also
History
| Version | Description |
| 6.0.1 |
|
| Report an issue | ||
| << factorial | Matemática discreta | lcm >> |

