UNPKG

distinctiomagnam

Version:
16 lines (13 loc) 431 B
export function getFactors(num: number) { const isEven = num % 2 === 0; const max = Math.sqrt(num); const inc = isEven ? 1 : 2; let factors = [1, num]; for (let curFactor = isEven ? 2 : 3; curFactor <= max; curFactor += inc) { if (num % curFactor !== 0) continue; factors.push(curFactor); let compliment = num / curFactor; if (compliment !== curFactor) factors.push(compliment); } return factors; }