Trailing zero

In mathematics, trailing zeros are a sequence of 0 in the decimal representation (or more generally, in any positional representation) of a number, after which no other digits follow.

Trailing zeros to the right of a decimal point, as in 12.340, don't affect the value of a number and may be omitted if all that is of interest is its numerical value. This is true even if the zeros recur infinitely. For example, in pharmacy, trailing zeros are omitted from dose values to prevent misreading. However, trailing zeros may be useful for indicating the number of significant figures, for example in a measurement. In such a context, "simplifying" a number by removing trailing zeros would be incorrect.

The number of trailing zeros in a non-zero base-b integer n equals the exponent of the highest power of b that divides n. For example, 14000 has three trailing zeros and is therefore divisible by 1000 = 103, but not by 104. This property is useful when looking for small factors in integer factorization. Some computer architectures have a count trailing zeros operation in their instruction set for efficiently determining the number of trailing zero bits in a machine word.

Factorial
The number of trailing zeros in the decimal representation of n!, the factorial of a non-negative integer n, is simply the multiplicity of the prime factor 5 in n ! . This can be determined with this special case of de Polignac's formula:


 * $$f(n) = \sum_{i=1}^k \left \lfloor \frac{n}{5^i} \right \rfloor =

\left \lfloor \frac{n}{5} \right \rfloor + \left \lfloor \frac{n}{5^2} \right \rfloor + \left \lfloor \frac{n}{5^3} \right \rfloor + \cdots + \left \lfloor \frac{n}{5^k} \right \rfloor, \,$$

where k must be chosen such that


 * $$5^{k+1} > n,\,$$

more precisely


 * $$5^{k} \le n < 5^{k+1},$$
 * $$k = \left \lfloor \log_{5} n \right \rfloor,$$

and $$\lfloor a \rfloor$$ denotes the floor function applied to a. For n = 0, 1, 2, ... this is


 * 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 6, ....

For example, 53 > 32, and therefore 32! = 263130836933693530167218012160000000 ends in


 * $$\left \lfloor \frac{32}{5} \right \rfloor + \left \lfloor \frac{32}{5^2} \right \rfloor = 6 + 1 = 7\,$$

zeros. If n < 5, the inequality is satisfied by k = 0; in that case the sum is empty, giving the answer 0.

The formula actually counts the number of factors 5 in n ! , but since there are at least as many factors 2, this is equivalent to the number of factors 10, each of which gives one more trailing zero.

Defining


 * $$q_i = \left \lfloor \frac{n}{5^i} \right \rfloor,\,$$

the following recurrence relation holds:


 * $$\begin{align}q_0\,\,\,\,\, & = \,\,\,n,\quad \\

q_{i+1} & = \left \lfloor \frac{q_i}{5} \right \rfloor.\,\end{align}$$

This can be used to simplify the computation of the terms of the summation, which can be stopped as soon as qi reaches zero. The condition 5k+1 > n is equivalent to qk+1 = 0.