divisor
Version:
Calculates divisors/factors of natural numbers and gcd/lcm using euclid's algorithm.
97 lines (93 loc) • 4.38 kB
text/typescript
/**
* Gets all common divisors of the provided numbers
* @param {number} n1 First number to process
* @param {number} n2 Second number to process
* @param {string | undefined} [sort] Sort expression as 'asc' or 'desc' - optional
* @returns {number[]} Common divisors of provided numbers
*/
declare function getCommonDivisors(n1: number, n2: number, sort?: string): number[];
/**
* Calculates greatest common divisor (gcd) of provided numbers
* @param {number} n1 First number to process
* @param {number} n2 Second number to process
* @returns {number} Greatest common divisor (gcd)
*/
declare function greatestCommonDivisor(n1: number, n2: number): number;
/**
* Calculates least common multiple (lcm) of provided numbers
* @param {number} n1 First number to process
* @param {number} n2 Second number to process
* @returns {number} Least common multiple (lcm)
*/
declare function leastCommonMultiple(n1: number, n2: number): number;
/**
* Gets common divisor count of provided numbers
* @param {number} n1 First number to process
* @param {number} n2 Second number to process
* @returns {number} Common divisor number count
*/
declare function countCommonDivisors(n1: number, n2: number): number;
/**
* Multiplies common divisors of provided numbers
* @param {number} n1 First number to process
* @param {number} n2 Second number to process
* @returns {number} Common divisor multiplication result
*/
declare function multiplyCommonDivisors(n1: number, n2: number): number;
/**
* Sums up common divisors of provided numbers
* @param {number} n1 First number to process
* @param {number} n2 Second number to process
* @returns {number} Sum of common divisors
*/
declare function sumCommonDivisors(n1: number, n2: number): number;
interface DivisorOptions {
readonly sort?: string;
readonly onlyProperDivisors?: boolean;
}
/**
* Gets all divisors of the provided number
* @param {number} n Number to process
* @param {DivisorOptions | undefined} [options] Divisor options - optional
* @param {string | undefined} [options.sort] Sort expression as 'asc' or 'desc' - optional
* @param {boolean | undefined} [options.onlyProperDivisors] Indicator for proper divisors - optional
* @returns {number[]} Divisors of the provided number and options
*/
declare function getDivisors(n: number, options?: DivisorOptions | undefined): number[];
/**
* Gets divisor count of a number
* @param {number} n Number to process
* @param {boolean | undefined} [onlyProperDivisors=false] Indicator for proper divisors - optional
* @returns {number} Divisor number count
*/
declare function countDivisors(n: number, onlyProperDivisors?: boolean | undefined): number;
/**
* Multiplies divisors of provided number
* @param {number} n Number to process
* @param {boolean | undefined} [onlyProperDivisors=false] Indicator for proper divisors - optional
* @returns {number} Divisor multiplication result
*/
declare function multiplyDivisors(n: number, onlyProperDivisors?: boolean | undefined): number;
/**
* Sums up divisors of provided number
* @param n {number} Number to process
* @param {boolean | undefined} [onlyProperDivisors=false] Indicator for proper divisors - optional
* @returns {number} Sum of divisors
*/
declare function sumDivisors(n: number, onlyProperDivisors?: boolean | undefined): number;
/**
* Gets greatest proper divisor of provided number
* @param {number} n Number to process
* @returns {number | null} Greatest proper divisor of provided number - null if provided number is 1
*/
declare function greatestProperDivisor(n: number): number | null;
/**
* Gets smallest proper divisor of provided number
* @summary DEPRECATED - Will be removed on first major release.
* Smallest proper divisor calculation seems needed at first due to lack of knowledge about proper divisors.
* This method always returns one if number one itself not used as number parameter
* @param {number} n Number to process
* @returns {number | null} Smallest proper divisor of provided number - null if provided number is one
*/
declare function smallestProperDivisor(n: number): number | null;
export { countCommonDivisors, countDivisors, getCommonDivisors, getDivisors, greatestCommonDivisor, greatestProperDivisor, leastCommonMultiple, multiplyCommonDivisors, multiplyDivisors, smallestProperDivisor, sumCommonDivisors, sumDivisors };