Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.0 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> Elementary Functions > Discrete mathematics > gcd


Greatest Common Divisor


[pgcd, U] = gcd(p)



a polynomial row vector p = [p1, ..., pn] (type equal to 2) or an integer row vector (type equal to 1 or 8).


vector of the same type as p


matrix of the same type as p


[pgcd, U] = gcd(p) computes the gcd of components of p (pgcd) and a unimodular matrix (with polynomial inverse) U, with minimal degree such that

p*U = [0 ... 0 pgcd].

In mathematics, a unimodular matrix U is a square integer matrix having determinant +1 or -1.

The greatest common divisor of an array p of real numbersof real numbers can be obtained by converting it to a polynomial before calling gcd, through p = inv_coeff(p, 0).

If p is given as an integer double (type 1), then it is treated as an int32.


// Polynomial case
s = %s;
p = [s  s*(s+1)^2 2*s^2+s^3];
[pgcd,u] = gcd(p);

// Integer case
V = int32([2^2*3^5 2^3*3^2 2^2*3^4*5]);
[thegcd,U] = gcd(V)

// Double case
V = [2^2*3^5 2^3*3^2 2^2*3^4*5];
[thegcd,U] = gcd(V)

gcd(uint8([15 20]))

gcd([iconvert(15, 4) iconvert(20, 4)])

gcd(iconvert([15 20], 4))

See also

  • bezout — Bezout equation for polynomials or integers
  • lcm — least common multiple
  • hermit — Hermite form
Report an issue
<< factorial Discrete mathematics lcm >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:02:42 CET 2017