# Number of trailing zeroes in base 16 representation of N!

Given an integer **N**, the task is to find the number of trailing zeroes in the base 16 representation of the factorial of **N**.

**Examples:**

Input:N = 6

Output:1

6! = 720 (base 10) = 2D0 (base 16)

Input:N = 100

Output:24

**Approach:**

- Number of trailing zeroes would be the highest power of
**16**in the factorial of**N**in**base 10**. - We know that
**16 = 2**. So, the highest power of^{4}**16**is equal to the highest power**2**in the factorial of**N**divided by**4**. - To calculate the highest power of
**2**in**N!**, we can use Legendre’s Formula.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach ` `#include <bits/stdc++.h> ` `#define ll long long int ` `using` `namespace` `std; ` ` ` `// Function to return the count of trailing zeroes ` `ll getTrailingZeroes(ll n) ` `{ ` ` ` `ll count = 0; ` ` ` `ll val, powerTwo = 2; ` ` ` ` ` `// Implementation of the Legendre's formula ` ` ` `do` `{ ` ` ` `val = n / powerTwo; ` ` ` `count += val; ` ` ` `powerTwo *= 2; ` ` ` `} ` `while` `(val != 0); ` ` ` ` ` `// Count has the highest power of 2 ` ` ` `// that divides n! in base 10 ` ` ` `return` `(count / 4); ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `n = 6; ` ` ` `cout << getTrailingZeroes(n); ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `class` `GfG ` `{ ` ` ` `// Function to return the count of trailing zeroes ` `static` `long` `getTrailingZeroes(` `long` `n) ` `{ ` ` ` `long` `count = ` `0` `; ` ` ` `long` `val, powerTwo = ` `2` `; ` ` ` ` ` `// Implementation of the Legendre's formula ` ` ` `do` ` ` `{ ` ` ` `val = n / powerTwo; ` ` ` `count += val; ` ` ` `powerTwo *= ` `2` `; ` ` ` `} ` `while` `(val != ` `0` `); ` ` ` ` ` `// Count has the highest power of 2 ` ` ` `// that divides n! in base 10 ` ` ` `return` `(count / ` `4` `); ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `int` `n = ` `6` `; ` ` ` `System.out.println(getTrailingZeroes(n)); ` `} ` `} ` ` ` `// This code is contributed by ` `// Prerna Saini. ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation of the approach ` ` ` `# Function to return the count of ` `# trailing zeroes ` `def` `getTrailingZeroes(n): ` ` ` ` ` `count ` `=` `0` ` ` `val, powerTwo ` `=` `1` `, ` `2` ` ` ` ` `# Implementation of the Legendre's ` ` ` `# formula ` ` ` `while` `(val !` `=` `0` `): ` ` ` `val ` `=` `n ` `/` `/` `powerTwo ` ` ` `count ` `+` `=` `val ` ` ` `powerTwo ` `*` `=` `2` ` ` ` ` `# Count has the highest power of 2 ` ` ` `# that divides n! in base 10 ` ` ` `return` `(count ` `/` `/` `4` `) ` ` ` `# Driver code ` `n ` `=` `6` `print` `(getTrailingZeroes(n)) ` ` ` `# This code is contributed ` `# by Mohit Kumar ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` `class` `GFG ` `{ ` ` ` `// Function to return the count of ` `// trailing zeroes ` `static` `long` `getTrailingZeroes(` `long` `n) ` `{ ` ` ` `long` `count = 0; ` ` ` `long` `val, powerTwo = 2; ` ` ` ` ` `// Implementation of the ` ` ` `// Legendre's formula ` ` ` `do` ` ` `{ ` ` ` `val = n / powerTwo; ` ` ` `count += val; ` ` ` `powerTwo *= 2; ` ` ` `} ` `while` `(val != 0); ` ` ` ` ` `// Count has the highest power of 2 ` ` ` `// that divides n! in base 10 ` ` ` `return` `(count / 4); ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main() ` `{ ` ` ` `int` `n = 6; ` ` ` `Console.Write(getTrailingZeroes(n)); ` `} ` `} ` ` ` `// This code is contributed by ` `// Akanksha Rai ` |

*chevron_right*

*filter_none*

## PHP

**Output:**

1

## Recommended Posts:

- Number of trailing zeroes in base B representation of N!
- Count trailing zeroes in factorial of a number
- Smallest number with at least n trailing zeroes in factorial
- Trailing number of 0s in product of two factorials
- Find the smallest number X such that X! contains at least Y trailing zeros.
- Next greater number than N with exactly one bit different in binary representation of N
- Find consecutive 1s of length >= n in binary representation of a number
- Sum of decimal equivalent of all possible pairs of Binary representation of a Number
- Number of mismatching bits in the binary representation of two integers
- Count number of triplets with product equal to given number with duplicates allowed | Set-2
- Count number of triplets with product equal to given number with duplicates allowed
- Maximum number of contiguous array elements with same number of set bits
- Given number of matches played, find number of teams in tournament
- Total number of possible Binary Search Trees using Catalan Number
- Find the number of ways to divide number into four parts such that a = c and b = d

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.