VOOZH about

URL: https://www.geeksforgeeks.org/dsa/count-trailing-zeroes-factorial-number/

⇱ Count trailing zeroes in factorial - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Count trailing zeroes in factorial

Last Updated : 2 Apr, 2026

Given an integer n, we have to returns count of trailing zeroes in n! . 

Examples :

Input: n = 5
Output: 1
Explanation: Factorial of 5 is 120 which has one trailing 0.

Input: n = 10
Output: 2
Explanation: Factorial of 10 is 3628800 which have 2 trailing zeroes.

[Naive Approach] By calculating the factorial - O(n) Time and O(1) Space

The idea is to calculate the factorial of the number and then count the number of trailing zeros by repeatedly dividing the factorial by 10 till the last digit is 0. The number of times the factorial is divided by 10 is the number of trailing zeros. This approach is not useful for large numbers as calculating their factorial will cause overflow.


Output
2

[Expected Approach] Repeated division by 5 - O(log n base 5) Time and O(1) Space

The idea is to consider all prime factors of factorial n. A trailing zero is always produced by prime factors2 and 5. If we can count the number of 5s and 2s in n!, our task is done.

How does this work? A trailing 0 is formed by multiplication of 5 and 2. So if we consider all prime factors of all numbers from 1 to n, there would be more 2s than 5s. So the number of 0s is limited by number of 5s. If we count number of 5s in prime factors, we get the result. Consider the following examples:

n = 5: There is one 5 and three 2s in prime factors of 5! (2 * 2 * 2 * 3 * 5). So a count of trailing 0s is min(1, 3) = 1.
n = 11: There are two 5s and eight 2s in prime factors of 11! (2 8 * 34 * 52 * 7). So the count of trailing 0s is min(2, 8) = 2.

We can observe that the number of 2s in prime factors is always more than or equal to the number of 5s. So, if we count 5s in prime factors, we are done.

How to count the total number of 5s in prime factors of n! ?

A simple way is to calculate floor(n/5). For example, 7! has one 5, 10! has two 5s. But, numbers like 25, 125, etc have more than 5 instead of floor (n / 5). For example, if we consider 28! we get one extra 5 and the number of 0s becomes 6. Handling this is simple, first, divide n by 5 and remove all single 5s, then divide by 25 to remove extra 5s, and so on.

Following is the summarized formula for counting trailing 0s:

Trailing 0s in n! = Count of 5s in prime factors of n! = floor(n/5) + floor(n/25) + floor(n/125) + ..


Output
2
Comment
Article Tags: