Skip to content

Repository files navigation

Greatest Common Divisor

NPM versionBuild StatusCoverage StatusDependencies

Computes the greatest common divisor (gcd).

Note: the gcd is also known as the greatest common factor (gcf), highest common factor (hcf), highest common divisor, and greatest common measure (gcm).

Installation

$ npm install compute-gcd

For use in the browser, use browserify.

Usage

vargcd=require('compute-gcd');

gcd( a, b[, c,...,n] )

Computes the greatest common divisor (gcd) of two or more integers.

varval=gcd(48,18);// returns 6varval=gcd(8,12,16);// returns 4

gcd( arr[, accessor] )

Computes the greatest common divisor (gcd) of two or more integers.

varval=gcd([48,18]);// returns 6varval=gcd([8,12,16]);// returns 4

For object arrays, provide an accessor function for accessing array values

vardata=[['beep',4],['boop',8],['bap',12],['baz',16]];functiongetValue(d,i){returnd[1];}vararr=gcd(arr,getValue);// returns 4

Notes

  • For more than 3 values, a performance gain can be achieved if the values are sorted in ascending order.
  • If provided an array with a length less than 2 or a single integer argument, the function returns null.

Examples

vargcd=require('compute-gcd');// Compute the gcd of random tuples...varx,y,z,arr,val;for(vari=0;i<100;i++){x=Math.round(Math.random()*50);y=Math.round(Math.random()*50);z=Math.round(Math.random()*50);arr=[x,y,z];val=gcd(arr);console.log(arr,val);}

To run the example code from the top-level application directory,

$ node ./examples/index.js

Tests

Unit

Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:

$ make test

All new feature development should have corresponding unit tests to validate correct functionality.

Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

$ make test-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

$ make view-cov

License

MIT license.

Copyright

Copyright © 2014-2015. Athan Reines.

About

Computes the greatest common divisor (gcd).

Resources

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages