JSFiddle - React, Tailwind, and code Playground
by nkovacs
JavaScript
primeFactorization = function(num) {
var root = Math.sqrt(num);
var result = arguments[1] || []; // get unnamed paremeter from recursive calls
var x = 2;
if (num % x) { // if not divisible by 2
x = 3; // assign first odd
while ((num % x) && ((x = x + 2) < root)) {} // iterate odds
}
// if no factor found then num is prime
x = (x <= root) ? x : num;
result.push(x); // push latest prime factor
// if num isn't prime factor make recursive call
return (x === num) ? result : primeFactorization(num / x, result);
};
console.log(64, primeFactorization(64));
console.log(112, primeFactorization(112));
console.log(160, primeFactorization(160));
console.log(864, primeFactorization(864));