JSFiddle - React, Tailwind, and code Playground
by krustnic
JavaScript
function findPrimes(n) {
const primes = [];
for(let i=2; i<=n; i++) {
let isPrime = true
for(let j=2; j<=Math.sqrt(n); j++) {
if (i !== j && i % j === 0) {
isPrime = false
break
}
}
if (isPrime) {
primes.push(i)
}
}
return primes
}
function fac(n) {
return (n != 1) ? n * fac(n - 1) : 1;
}
function getDivisionNumber(n, d) {
let count = 0
while(n % d === 0) {
n = n / d
count += 1
}
return count
}
function decomp(n) {
const f = fac(n)
const primes = findPrimes(n)
const items = []
console.log(f)
console.log(primes)
for(const prime of primes) {
console.log(f % prime)
if (f % prime === 0) {
const d = getDivisionNumber(f, prime)
items.push(prime + (d === 1 ? '' : '^' + d))
}
}
return items.join(' * ')
}
console.log(decomp(25))