Programa JavaScript Factorial de un número


11 de Mayo del 2020

Hola a todos, tengo que hacer un script que calcule el factorial de un número.
Aparte debe mostrar por consola toda la operación, por ejemplo si se introduce un 4:
1.Calculando Factorial de 4
2.Operación = 4x3x2x1
3.Factorial = 24

La parte del script que lo calcule ya lo tengo y funciona
Código:

<script>
var n1,n2;
n1=parseInt(prompt("Introduce un número"));
n2=1;
if(n1<0){
while(n1<0){
n1=parseInt(prompt("El valor del número introducido debe ser mayor que 0"));
}
}
while (n1>1){
n2=n1*n2;
n1=n1-1;
}

document.write("El factorial es: "+n2);
</script>

La parte de la consola no sé como implementarlo.

Espero que alguien pueda ayudarme, un saludo.


Antonia G.
12 de Agosto del 2026

Hola,

Para mostrar la operación completa («4x3x2x1») lo más sencillo es ir guardando cada número que multiplicas en un array a medida que avanza el bucle, y al final juntarlos con join(). Con eso y unos console.log en los puntos que pide el enunciado:

var n1, n2;
n1 = parseInt(prompt("Introduce un numero"));
n2 = 1;

if (n1 < 0) {
    while (n1 < 0) {
        n1 = parseInt(prompt("El valor del numero introducido debe ser mayor que 0"));
    }
}

console.log("1. Calculando Factorial de " + n1);

var numerosUsados = [n1];

while (n1 > 1) {
    n2 = n1 * n2;
    n1 = n1 - 1;
    numerosUsados.push(n1);
}

console.log("2. Operacion = " + numerosUsados.join("x"));
console.log("3. Factorial = " + n2);

document.write("El factorial es: " + n2);

La idea clave: cada vez que el bucle pasa por una vuelta, el valor de n1 en ese momento es justo uno de los factores de la multiplicación, así que en vez de perderlo, lo vas guardando en numerosUsados. Al final ese array contiene exactamente la secuencia [4, 3, 2, 1], y join("x") la convierte directamente en el texto "4x3x2x1" que necesitas mostrar.

Un saludo,
Antonia G.