Le nombre de zéros de n! est égal à l'exposant de 5 dans la décomposition en facteurs premiers (le facteur 2 étant plus fréquent). Comme vu plus haut pour 2, cet exposant vaut e=E(n/5)+ E(n/5^2)+... +E(n/5^k) avec 5^k<n<5^(k+1)
Soit f(n) le produit de tous les nombres inférieurs ou égaux à n non divisibles par 5.
On a l'égalité n!= f(n)*E(n/5)!*5^E(n/5)
En itérant, on obtient n!=f(n)*f(E(n/5))*...*f(E(n/5^k)*5^e ou encore
n!=f(n)*...*f(E(n/5^k)*10^e/2^e
Les valeurs successives de f modulo 10 sont périodiques de période 10: entre 10p et 10p+9 elles sont 6,6,2,6,4,4,4,8,4,6; de même, pour les valeurs de 4q à 4q+3 les puissances de 2 valent 6,2,4,8. Pour déterminer le dernier chiffre non nul, il suffit donc de calculer le produit des valeurs de f et de diviser (en congruence modulo 10) par 2^e, sachant que ce nombre sera pair, puisque les facteurs 2 sont pléthoriques.
Un exemple: pour n=2005: e=401+80+16+3=500
f(2005)*f(401)*f(80)*f(16)*f(3)=4*6*6*4*6=6 (mod 10). Comme 2^500=6 et que 6/6=6
le dernier chiffre non nul de 2005! est 6
(on travaille en fait dans le sous-groupe des classes paires de Z/10Z dont 6 est élément neutre)