Factorial Trailing Zeroes - [Easy] One liner
Problem Statement:
Given an integer n
, return the number of trailing zeroes in n!
.
Note that n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1
.
Example 1:
Input: n = 3 Output: 0 Explanation: 3! = 6, no trailing zero.
Example 2:
Input: n = 5 Output: 1 Explanation: 5! = 120, one trailing zero.
Example 3:
Input: n = 0 Output: 0
Constraints:
0 <= n <= 104
Follow up: Could you write a solution that works in logarithmic time complexity?
Solution:
You should notice that the number of zeros is bounded by the number of factors of 5 and its powers because 2 will have always more. So we just count the number of factors of each power of 5 from 1 to n using a simple divide operation.
int trailingZeroes(int n)
{
return n/3125 + n/625 + n/125 + n/25 + n/5;
}