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));