# Find the number of consecutive zero at the end after multiplying n numbers

Given an array with n numbers. The task is to print number of consecutive zero’s at the end after multiplying all the n number.

Examples :

```Input : arr[] = {100, 10}
Output : 3
Explanation : 100 x 10 = 1000,
3 zero's at the end.

Input : arr[] = {100, 10, 5, 25, 35, 14}
Output : 4
Explanation :
100 x 10 x 5 x 25 x 35 x 14 = 61250000,
4 zero's at the end
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Naive Approach :
First multiple all the number and save into the string(because if the multiplicative number is big as 2^64 then it give wrong, so store every multiple in string) and then count the number of zero’s.

Efficient approach :
First count the 2’s factor of n numbers and then count the 5’s factor of all n number then print the smallest one.

For Example –

```n_number's  | 2's factor | 5's factor
100         |     2      |    2
10          |     1      |    1
5           |     0      |    1
25          |     0      |    2
35          |     0      |    1
14          |     1      |    0
Total       |     4      |    7

we can take a minimum so there number of
zero's is 4
```

Below is the implementation of above approach :

## C++

 `// CPP program to find the number of consecutive zero ` `// at the end after multiplying n numbers ` `#include ` `using` `namespace` `std; ` ` `  `// Function to count two's factor ` `int` `two_factor(``int` `n)  ` `{     ` `    ``// Count number of 2s present in n ` `    ``int` `twocount = 0; ` `    ``while` `(n % 2 == 0)  ` `    ``{ ` `        ``twocount++;  ` `        ``n = n / 2;  ` `    ``} ` `    ``return` `twocount; ` `} ` ` `  `// Function to count five's factor ` `int` `five_factor(``int` `n)  ` `{ ` `    ``int` `fivecount = 0; ` `    ``while` `(n % 5 == 0)  ` `    ``{ ` `        ``fivecount++;  ` `        ``n = n / 5;  ` `    ``} ` `    ``return` `fivecount; ` `} ` ` `  `// Function to count number of zeros ` `int` `find_con_zero(``int` `arr[], ``int` `n) ` `{ ` `    ``int` `twocount = 0; ` `    ``int` `fivecount = 0; ` `    ``for` `(``int` `i = 0; i < n; i++) { ` ` `  `        ``// Count the two's factor of n number ` `        ``twocount += two_factor(arr[i]); ` ` `  `        ``// Count the five's factor of n number ` `        ``fivecount += five_factor(arr[i]); ` `    ``} ` ` `  `    ``// Return the minimum ` `    ``if` `(twocount < fivecount)  ` `        ``return` `twocount;  ` `    ``else`  `        ``return` `fivecount; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `arr[] = { 100, 10, 5, 25, 35, 14 }; ` `    ``int` `n = 6; ` `    ``cout << find_con_zero(arr, n); ` `} `

## Java

 `// Java program to find the number  ` `// of consecutive zero at the end ` `// after multiplying n numbers ` ` `  `public` `class` `GfG{ ` ` `  `    ``// Function to count two's factor ` `    ``static` `int` `two_factor(``int` `n)  ` `    ``{      ` `        ``// Count number of 2s ` `        ``// present in n ` `        ``int` `twocount = ``0``; ` `        ``while` `(n % ``2` `== ``0``)  ` `        ``{ ` `            ``twocount++;  ` `            ``n = n / ``2``;  ` `        ``} ` `        ``return` `twocount; ` `    ``} ` ` `  `    ``// Function to count five's ` `    ``// factor ` `    ``static` `int` `five_factor(``int` `n)  ` `    ``{ ` `        ``int` `fivecount = ``0``; ` `        ``while` `(n % ``5` `== ``0``)  ` `        ``{ ` `            ``fivecount++;  ` `            ``n = n / ``5``;  ` `        ``} ` `        ``return` `fivecount; ` `    ``} ` ` `  `    ``// Function to count number of zeros ` `    ``static` `int` `find_con_zero(``int` `arr[], ``int` `n) ` `    ``{ ` `        ``int` `twocount = ``0``; ` `        ``int` `fivecount = ``0``;   ` `         `  `        ``for` `(``int` `i = ``0``; i < n; i++) {    ` ` `  `            ``// Count the two's factor ` `            ``// of n number ` `            ``twocount += two_factor(arr[i]);  ` ` `  `            ``// Count the five's factor  ` `            ``// of n number ` `            ``fivecount += five_factor(arr[i]); ` `        ``} ` ` `  `        ``// Return the minimum ` `        ``if` `(twocount < fivecount)  ` `            ``return` `twocount;  ` `        ``else` `            ``return` `fivecount; ` `    ``} ` `     `  `    ``// driver function ` `    ``public` `static` `void` `main(String s[]) ` `    ``{ ` `        ``int` `arr[] = { ``100``, ``10``, ``5``, ``25``, ``35``, ``14` `}; ` `        ``int` `n = ``6``; ` `        ``System.out.println(find_con_zero(arr, n));      ` `    ``} ` `} ` ` `  `// This code is contributed by Gitanjali `

## Python3

 `# Python3 code to find the number of consecutive zero ` `# at the end after multiplying n numbers ` ` `  `# Function to count two's factor ` `def` `two_factor( n ): ` ` `  `    ``# Count number of 2s present in n ` `    ``twocount ``=` `0` `    ``while` `n ``%` `2` `=``=` `0``: ` `        ``twocount``+``=``1` `        ``n ``=``int``( n ``/` `2``) ` `    ``return` `twocount ` `     `  `# Function to count five's factor ` `def` `five_factor( n ): ` `    ``fivecount ``=` `0` `    ``while` `n ``%` `5` `=``=` `0``: ` `        ``fivecount``+``=``1` `        ``n ``=` `int``(n ``/` `5``) ` `    ``return` `fivecount ` ` `  `# Function to count number of zeros ` `def` `find_con_zero( arr, n ): ` `    ``twocount ``=` `0` `    ``fivecount ``=` `0` `    ``for` `i ``in` `range``(n): ` ` `  `        ``# Count the two's factor of n number ` `        ``twocount ``+``=` `two_factor(arr[i]) ` `         `  `        ``# Count the five's factor of n number ` `        ``fivecount ``+``=` `five_factor(arr[i]) ` `     `  `    ``# Return the minimum ` `    ``if` `twocount < fivecount: ` `        ``return` `twocount ` `    ``else``: ` `        ``return` `fivecount ` ` `  `# Driver Code ` `arr ``=` `[ ``100``, ``10``, ``5``, ``25``, ``35``, ``14` `] ` `n ``=` `6` `print``(find_con_zero(arr, n)) ` ` `  `# This code is contributed by "Sharad_Bhardwaj". `

## C#

 `// C# program to find the number  ` `// of consecutive zero at the end ` `// after multiplying n numbers ` `using` `System; ` ` `  `public` `class` `GfG { ` ` `  `    ``// Function to count two's factor ` `    ``static` `int` `two_factor(``int` `n)  ` `    ``{  ` `         `  `        ``// Count number of 2s ` `        ``// present in n ` `        ``int` `twocount = 0; ` `         `  `        ``while` `(n % 2 == 0)  ` `        ``{ ` `            ``twocount++;  ` `            ``n = n / 2;  ` `        ``} ` `         `  `        ``return` `twocount; ` `    ``} ` ` `  `    ``// Function to count five's ` `    ``// factor ` `    ``static` `int` `five_factor(``int` `n)  ` `    ``{ ` `        ``int` `fivecount = 0; ` `         `  `        ``while` `(n % 5 == 0)  ` `        ``{ ` `            ``fivecount++;  ` `            ``n = n / 5;  ` `        ``} ` `         `  `        ``return` `fivecount; ` `    ``} ` ` `  `    ``// Function to count number of zeros ` `    ``static` `int` `find_con_zero(``int` `[]arr, ``int` `n) ` `    ``{ ` `        ``int` `twocount = 0; ` `        ``int` `fivecount = 0;  ` `         `  `        ``for` `(``int` `i = 0; i < n; i++) {  ` ` `  `            ``// Count the two's factor ` `            ``// of n number ` `            ``twocount += two_factor(arr[i]);  ` ` `  `            ``// Count the five's factor  ` `            ``// of n number ` `            ``fivecount += five_factor(arr[i]); ` `        ``} ` ` `  `        ``// Return the minimum ` `        ``if` `(twocount < fivecount)  ` `            ``return` `twocount;  ` `        ``else` `            ``return` `fivecount; ` `    ``} ` `     `  `    ``// driver function ` `    ``public` `static` `void` `Main() ` `    ``{ ` `         `  `        ``int` `[]arr = { 100, 10, 5, 25, 35, 14 }; ` `        ``int` `n = 6; ` `         `  `        ``Console.WriteLine(find_con_zero(arr, n));  ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m. `

## PHP

 ` `

Output :

`4`

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.

Improved By : Mithun Kumar