Descomponer un numero js

function descomponerEnPrimos(N) {
    var arr = []; //aqui almacenamos los factores temporalmente
    var resultado = N;// el primer valor que usaremos es N
    while(resultado > 1) { // 'resultado' irá variando hasta hacerse 1
        for (var i = 2; i<= N; i++) { // vamos realizando pruebas
            if(resultado % i === 0) {
                resultado = resultado / i; //actualizamos el valor de resultado
                arr.push(i);
                break; // salimos del bucle for
            }
        }
    }
    var factores = []; // aqui almacenaremos los factores de forma mas legible
    var factor = arr[0]; // almacenamos el primer valor
    var cont = 1; // instanciamos la cantidad de veces que aparece el primer elemento
    if (arr.length > 1) { // si hay más de 1 elemento en el array
        for(var i = 1; i < arr.length; i++){
            if (factor !== arr[i]) { // si el factor cambia, ya no se repite más, podemos almacenarlo
                factores.push({factor: factor, seRepite: cont});
                factor = arr[i]; // establecemos el nuevo factor
                cont = 0; // inciamos el contador en cero, en la siguiente linea aumentará 1
            }
            cont++; // si el factor se repite, aumentamos el contador, si estaba en cero se aumenta a 1
        }
        factores.push({factor: factor, seRepite: cont}); // almacenamos el último factor encontrado
    } else { // en caso que N sea primo, solo tiene un factor
        factores.push({factor: factor, seRepite: cont});
    }
    return factores;
}
Easy Elk