Related Articles
Find the number of consecutive zero at the end after multiplying n numbers
• Last Updated : 13 Apr, 2021

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```

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

 ``

## Javascript

 ``

Output :

`4`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up