JSFiddle - React, Tailwind, and code Playground
by hescano
JavaScript
function decomp(n) {
var result = "";
var allFactors = factors(factorial(n));
for (var key in allFactors) {
result += allFactors[key] === 1 ? key + " * " : key + "^" + allFactors[key] + " * ";
}
return result.substr(0, result.length - 3);
}
function factorial(n) {
if (n < 2) {
return 1;
}
return n * factorial(n - 1);
}
function factors(r) {
var i;
var counter = {};
for (i = 2; i <= r; i++) {
while ((r % i) === 0) {
if (counter[i]) {
counter[i]++;
} else {
counter[i] = 1;
}
r /= i;
}
}
return counter;
}
console.log(decomp(25))