# 172-factorial-trailing-zeroes Try it on leetcode ## Description

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:

 

Follow up: Could you write a solution that works in logarithmic time complexity?

## Solution(Python) ```Python class Solution: def trailingZeroes(self, n: int) -> int: return self.math(n) # Time Complexity1: O(n) # space Complexity: O(1) # overflow error for n > 20 def bruteforce(self, n): # generate factorial of number fact = 1 for i in range(2, n + 1): fact *= i # calculate trailing zeros cnt = 0 rem = 0 while fact >= 0 and rem == 0: rem = fact % 10 fact = fact // 10 if rem == 0: cnt += 1 return cnt # prime factor of 10 = 2 aND 5 # even numbers has 2 and onlyconsider 5 # trailing zeros = n/5 + n/25 + n/125 # Time Complexity: O(log_5_n ) def math(self, n): if n <= 0: return 0 cnt = 0 while n >= 5: n //= 5 cnt += n return cnt ```