Divisor is a utility tools that calculates divisors/factors of natural numbers and gcd/lcm using euclid's algorithm.
To install Divisor using npm, run the following command:
npm i divisor
API documentation can be found here.
To generate the documentation on your local development environment, run:
npm run gen-docs
Here are some examples of how to use the utility methods from the package:
To gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with require(), use the following approach:
const divisor = require('divisor');
To gain the TypeScript typings (for intellisense / autocomplete) while using ES Module imports with import, use the following approach:
import divisor from 'divisor';
To get the divisors of a number:
const divisors = divisor.getDivisors(20);
// outputs => [ 1, 20, 2, 10, 4, 5 ]
To get the sorted divisors of a number:
const sortedDivisors = divisor.getDivisors(20, { sort: 'asc' });
// outputs => [ 1, 2, 4, 5, 10, 20 ]
{
sort?: string | undefined; // optional - supports 'asc' | 'desc'
onlyProperDivisors?: boolean; // optional
}
To get all common divisors:
const commonDivisors = divisor.getCommonDivisors(20, 100);
// outputs => [ 1, 20, 2, 10, 4, 5 ]
const sortedCommonDivisors = divisor.getCommonDivisors(20, 100, {
sort: 'desc', // supports 'asc' | 'desc'
});
// [ 20, 10, 5, 4, 2, 1 ]
To get the greatest common divisor - gcd:
const gcd = divisor.greatestCommonDivisor(20, 100);
// outputs => 20
To get the least common multiple - lcm:
const lcm = divisor.leastCommonMultiple(11, 67);
// outputs => 737
We welcome contributions! Please review code of conduct and contributing guide so that you can understand what actions will and will not be tolerated.
- The
main
branch is just a snapshot of the latest stable release. All development should be done in development branches. Do not submit PRs against themain
branch. - Work in the
src
folder and DO NOT checkindist
in the commits. - It's OK to have multiple small commits as you work on the PR
- If adding a new feature add accompanying test case.
- If fixing bug,
- Add accompanying test case if applicable.
- Provide a detailed description of the bug in the PR.
- If you are resolving an opened issue add issue number in your PR title.
Divisor is MIT licensed.