Is there a way to find the number of trailing zeroes in a factorial with a certain base?

607 Views Asked by At

I have a number $k$, and I need to find the number of trailing zeros $k!$ (factorial) has when put into base $b$. I need a general way that will work for all $b$'s and $k$'s.

I have tried making variations of the method used for $b=10$, but this has not worked much. The method specifically for $b=10$ is to take the floor of $\dfrac{k}{5^1}$, then to do the take the result and do the same $\left(\dfrac{\frac{k}{5}}{5}\right)$ and keep doing this until the results are under 1. The number of trailing zeros would then be the sum of all these results.

Is there a general way to do something similar for $k!$ in base $b$?

1

There are 1 best solutions below

2
On BEST ANSWER

Let's suppose our base is $b = p_1^{e_1}p_2^{e_2} \cdots p_k^{e_n}$, where the $p_i$ are prime numbers. The number of trailing zeros of a given number $K$ is the maximum number $m$ such that $b^m = p_1^{e_1m}p_2^{e_2m}\cdots p_n^{e_nm}$ divides $K$.

Let $K = k!$. Then, if we express $k! = q_1^{f_1}q_2^{f_2}\cdots q_r^{f_r}$ as a product of primes $q_i$, we have that the exponent $f_i$ is given by $$f_i = \sum_{s=1}^\infty \left\lfloor\frac{n}{q_i^s} \right\rfloor$$

Now, in order for $b^m$ to divide $k!$, we require that $p_i^{e_i m}$ divides $k!$ for $i = 1,2,\cdots,n$. The number of times that $p_i$ divides $k!$ is, by the previous argument, $$\sum_{s=1}^\infty \left\lfloor\frac{k}{p_i^s} \right\rfloor$$ so, the maximum $m_i$ such that $p_i^{e_im_i}$ divides $k!$ is $$m_i = \left\lfloor \frac{1}{e_i}\sum_{s=1}^\infty \left\lfloor\frac{k}{p_i^s} \right\rfloor\right\rfloor$$ Now, $m \le m_i$ for $i=1,2,\cdots,n$, since if $b^m$ divides $k!$, then certainly the factor $p_i^{e_i}$ does, as well. By the maximality of $m$, we can conclude that $$m = \min_{i=1,2,\cdots, n} m_i = \min_{i=1,2,\cdots, n} \left\lfloor \frac{1}{e_i} \sum_{s=1}^\infty \left\lfloor\frac{n}{p_i^s}\right\rfloor\right\rfloor$$ is the number of trailing zeros when $k!$ is expressed in base $b$.


As an example, let's see how many trailing zeros $16!$ (expressed in the usual base $10$) has in base $b = 12$. We have that $b = 2^2\cdot 3$, so $p_1 = 2$, $p_2 = 3$, and $e_1 = 2$, $e_2 = 1$. Now, we can compute $$m_1 = \left\lfloor \frac{1}{2}\sum_{s=1}^\infty \left\lfloor\frac{16}{2^s}\right\rfloor\right\rfloor = \left\lfloor \frac{8+4+2+1}{2}\right\rfloor = 7$$ $$m_2 = \left\lfloor \frac{1}{1}\sum_{s=1}^\infty \left\lfloor\frac{16}{3^s}\right\rfloor\right\rfloor = 5 + 1 = 6$$ so $16!$ (again, in decimal) has $$m = \min\{7,6\} = 6$$ trailing zeros when expressed in base $12$. We can check this in WolframAlpha, which tells us that $$(16!)_{10} = 241ab88000000_{12}$$ indeed has $6$ trailing zeros.