Je suis sûr d'avoir déjà vu cette énigme quelque part, en effet. J'ai en tout cas déjà utilisé le modus operandi de la première partie de cette réponse pour une question similaire.
Parmi les cent nombres que l'on multiplie entre eux pour créer [latex]100![/latex], il y a 50 nombres pairs, dont 25 multiples de 4, dont 12 multiples de 8, dont 6 multiples de 16, dont 3 multiples de 32, dont 64. Donc :
[latex]100 ! = 2^{97} \times P_{2}[/latex] où [latex]P_2[/latex] est un entier impair (premier avec 2).
De la même façon, il y a 20 multiples de 5, dont 4 multiples de 25, donc :
[latex]100 ! = 2^{97} \times 5^{24} \times P_{2,5}[/latex] où [latex]P_{2,5}[/latex] est un entier premier avec 2 et avec 5.
L'écriture décimale de [latex]100![/latex] se termine donc par 24 zéros.
Pour le premier non nul, je tente une autre approche : le premier chiffre non nul de [latex]10![/latex] est un 8, et il va de soi que [latex]11 \times 12 \times \dots \times 19 \times 20[/latex] aura le même, tout comme le produit des nombres [latex]10k+1, 10k+2, \dots, 10k+10[/latex] quel que soit [latex]k[/latex].
Ainsi, le premier chiffre non nul de [latex]100![/latex] est le même que le chiffre des unités de [latex]8^{10}[/latex], soit le chiffre 4 (on l'obtient en observant que [latex]8^{10} = 2^{30}[/latex] et que le chiffre des unités de [latex]2^n[/latex] suit un cycle de période 4 : 2, 4, 8, 6, 2, 4, 8, 6...)