gcd
Compute the greatest common divisor (gcd).
The greatest common divisor (gcd) of two non-zero integers a
and b
is the largest positive integer which divides both a
and b
without a remainder. The gcd is also known as the greatest common factor (gcf), highest common factor (hcf), highest common divisor, and greatest common measure (gcm).
Usage
var gcd = require( '@stdlib/math/base/special/gcd' );
gcd( a, b )
Computes the greatest common divisor (gcd).
var v = gcd( 48, 18 );
// returns 6
If both a
and b
are 0
, the function returns 0
.
var v = gcd( 0, 0 );
// returns 0
Both a
and b
must have integer values; otherwise, the function returns NaN
.
var v = gcd( 3.14, 18 );
// returns NaN
v = gcd( 48, 3.14 );
// returns NaN
v = gcd( NaN, 18 );
// returns NaN
v = gcd( 48, NaN );
// returns NaN
Examples
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var gcd = require( '@stdlib/math/base/special/gcd' );
var a = discreteUniform( 100, 0, 50 );
var b = discreteUniform( a.length, 0, 50 );
var i;
for ( i = 0; i < a.length; i++ ) {
console.log( 'gcd(%d,%d) = %d', a[ i ], b[ i ], gcd( a[ i ], b[ i ] ) );
}
C APIs
Usage
#include "stdlib/math/base/special/gcd.h"
stdlib_base_gcd( a, b )
Computes the greatest common divisor (gcd).
double v = stdlib_base_gcd( 48.0, 18.0 );
// returns 6.0
The function accepts the following arguments:
- a:
[in] double
input value. - b:
[in] double
input value.
double stdlib_base_gcd( const double a, const double b );
Examples
#include "stdlib/math/base/special/gcd.h"
#include <stdio.h>
int main( void ) {
const double a[] = { 24.0, 32.0, 48.0, 116.0, 33.0 };
const double b[] = { 12.0, 6.0, 15.0, 52.0, 22.0 };
double out;
int i;
for ( i = 0; i < 5; i++ ) {
out = stdlib_base_gcd( a[ i ], b[ i ] );
printf( "gcd(%lf, %lf) = %lf\n", a[ i ], b[ i ], out );
}
}
References
- Stein, Josef. 1967. "Computational problems associated with Racah algebra." Journal of Computational Physics 1 (3): 397–405. doi:10.1016/0021-9991(67)90047-2.