Given an integer n, return the number of trailing zeroes in n!.

Note that n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1.

&nbsp;
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


&nbsp;
Constraints:


	0 &lt;= n &lt;= 104


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

class Solution:
    def trailingZeroes(self, n: int) -> int:
        res = 0
        for i in range(2, n+1):
            while i > 0 and i%5 == 0:
                i //= 5
                res += 1
        return res
class Solution {
    public int trailingZeroes(int n) {
        int count=0;
        while(n>1) {count+=n/5; n=n/5;}
        return count;
    }
}
class Solution {
public:
    int trailingZeroes(int n) {
        int ni=0, mi=0;
        for (int i=1; i<=n; i++){
            int x=i;
            while (x%2==0){
                x= x>>1;
                ni++;
            }
            while (x%5==0){
                x= x/5;
                mi++;
            }
        }
        return min(mi,ni);
    }
};
var trailingZeroes = function(n) {
    let count=0
   while(n>=5){
       count += ~~(n/5)
       n= ~~(n/5)
   }
    return count
};
Factorial Trailing Zeroes