¿Cuántos ceros hay al final de 3124 (factorial)?

TL; DR: [matemáticas] 776 [/ matemáticas].


Reformulemos la pregunta : ¿cuál es la potencia más alta de diez que puede factorizar en el número [math] 3124! [/ Math]?

Ahora, algunos contando.

Para obtener un factor [matemático] 10 [/ matemático] la receta es simple y única : dé un factor [matemático] 2 [/ matemático] y un factor [matemático] 5 [/ matemático].

Ahora, algo que parece bastante obvio (se puede probar fácilmente) es que hay muchos más factores [matemáticas] 2 [/ matemáticas] que factores [matemáticas] 5 [/ matemáticas] en su número ridículamente grande (porque es un factorial , y [matemática] 2 [/ matemática] ocurre con más frecuencia que [matemática] 5 [/ matemática]).

Entonces, el ” elemento limitante de la receta para crear [matemáticas] 10 [/ matemáticas] factores” es el número de [matemáticas] 5 [/ matemáticas] que puede factorizar.


Ahora, realizando divisiones enteras :

[matemáticas] 3124/5 = 624 [/ matemáticas] (este es el número de múltiplos de [matemáticas] 5 [/ matemáticas])

[matemática] 624/5 = 124 [/ matemática] (este es el número de “dobles múltiplos de [matemática] 5 [/ matemática]”, así que de múltiplos de [matemática] 25 [/ matemática]).

1 [matemática] 24/5 = 24 [/ matemática] (este es el número de múltiplos de [matemática] 125 [/ matemática])

[matemáticas] 24/5 = 4 [/ matemáticas] (este es el número de múltiplos de [matemáticas] 625 [/ matemáticas]).

Con todo, puede factorizar su número gigantesco por [matemática] 5 ^ {776} [/ matemática]

Debido a que hay suficientes factores [matemática] 2 [/ matemática], encontrará los poderes necesarios [matemática] 776 [/ matemática] de [matemática] 2 [/ matemática] y hará que “reaccionen” con los poderes disponibles de [matemáticas] 5 [/ matemáticas] hasta que no quede ninguno .

Te queda una potencia máxima de diez que es [matemática] 776 [/ matemática] que es el número de ceros al final de tu número.

Ah, estaba empezando a pensar que era el final de Seemingly Pointless Questions ™. Esta pregunta solicita el número de ceros al final, por lo que también usaremos expresiones regulares. Como de costumbre, activemos la REPL de Python3 y escriba:

  >>> del factorial de importación matemática como fac
 >>> importar re
 >>> x = fac (3124)
 >>> exp = re.compile ("0 + $")
 >>> coincidencias = exp.findall (str (x)) # Obtenga una lista de todas las coincidencias
 >>> print (len (coincide [0]))
 776

Bien, este fue un poco largo, así que déjame explicarte. Primero obtengo el factorial de 3124 usando la función factorial incorporada. Luego uso una expresión regular, “0 + $”, que significa, “busca un patrón de 1 o más 0s al final de la cadena”. Luego encuentro todas las coincidencias de este patrón utilizando la función findall e findall la longitud de la única coincidencia, obteniendo [math] 776 [/ math].