Divisor is a utility tools that calculates divisors/factors of natural numbers and gcd/lcm using euclid's algorithm.
Installing
Using npm:
npm i divisor
Documentation
API documentation can be found here.
On local development environment simply run
npm run gen-docs
Examples
Examples from some of the utility methods from package.
note: CommonJS usage
In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with require()
use the following approach:
const divisor = require('divisor');
note: ES Modules usage
In order to gain the TypeScript typings (for intellisense / autocomplete) while using ES Module imports with import
use the following approach:
import divisor from 'divisor';
Calculating single number divisors
Get divisors of a number
const divisors = divisor.getDivisors(20);
// [ 1, 20, 2, 10, 4, 5 ]
Get sorted divisors of a number
const sortedDivisors = divisor.getDivisors(20, { sort: 'asc' });
// [ 1, 2, 4, 5, 10, 20 ]
Divisor Options
{
sort?: string | undefined; // optional - supports 'asc' | 'desc'
onlyProperDivisors?: boolean; // optional
}
Calculating common divisors of two numbers
Get all common divisors
const commonDivisors = divisor.getCommonDivisors(20, 100);
// [ 1, 20, 2, 10, 4, 5 ]
const sortedCommonDivisors = divisor.getCommonDivisors(20, 100, {
sort: 'desc', // supports 'asc' | 'desc'
});
// [ 20, 10, 5, 4, 2, 1 ]
Greatest common divisor - gcd
const gcd = divisor.greatestCommonDivisor(20, 100);
// 20
Least common multiple - lcm
const lcm = divisor.leastCommonMultiple(11, 67);
// 737
Contributing
Please review code of conduct and contributing guide so that you can understand what actions will and will not be tolerated.
Pull Request Guidelines
- 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.
License
Divisor is MIT licensed.