Related Articles
Count number of trailing zeros in product of array
• Difficulty Level : Easy
• Last Updated : 25 Apr, 2018

Given a array size of n, we need to find the total number of zeros in the product of array.

Examples:

```Input  : a[] = {100, 20, 40, 25, 4}
Output : 6
Product is 100 * 20 * 40 * 25 * 4
which is 8000000 and has 6 trailing 0s.

Input  : a[] = {10, 100, 20, 30, 25, 4,
43, 25, 50, 90, 12, 80}
Output : 13
```

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

A simple solution is simply multiply and count trailing 0s in product. This solution may cause integer overflow. A better solution is based on the fact that zeros are formed by a combination of 2 and 5. Hence the number of zeros will depend on the number of pairs of 2’s and 5’s that can be formed.
Ex.: 8 * 3 * 5 * 23 * 17 * 25 * 4 * 11
23 * 31 * 51 * 231 * 171 * 52 * 22 * 111
In this example there are 5 twos and 3 fives. Hence, we shall be able to form only 3 pairs of (2*5). Hence will be 3 Zeros in the product.

## C++

 `// CPP program for count total zero in product of array``#include ``using` `namespace` `std;`` ` `// Returns count of zeros in product of array``int` `countZeros(``int` `a[], ``int` `n)``{``    ``int` `count2 = 0, count5 = 0;``    ``for` `(``int` `i = 0; i < n; i++) {`` ` `        ``// count number of 2s in each element``        ``while` `(a[i] % 2 == 0) {``            ``a[i] = a[i] / 2;``            ``count2++;``        ``}`` ` `        ``// count number of 5s in each element``        ``while` `(a[i] % 5 == 0) {``            ``a[i] = a[i] / 5;``            ``count5++;``        ``}``    ``}``    ``// return the minimum``    ``return` `(count2 < count5) ? count2 : count5;``}`` ` `// Driven Program``int` `main()``{``    ``int` `a[] = { 10, 100, 20, 30, 50, 90, 12, 80 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a);``    ``cout << countZeroso(a, n);``    ``return` `0;``}`

## Java

 `// Java program for count total``// zero in product of array``import` `java.util.*;``import` `java.lang.*;`` ` `public` `class` `GfG``{``    ``// Returns count of zeros in product of array``    ``public` `static` `int` `countZeroso(``int``[] a, ``int` `n)``    ``{``        ``int` `count2 = ``0``, count5 = ``0``;``        ``for` `(``int` `i = ``0``; i < n; i++) ``        ``{`` ` `            ``// count number of 2s ``            ``// in each element``            ``while` `(a[i] % ``2` `== ``0``) ``            ``{``                ``a[i] = a[i] / ``2``;``                ``count2++;``            ``}`` ` `            ``// count number of 5s ``            ``// in each element``            ``while` `(a[i] % ``5` `== ``0``) ``            ``{``                ``a[i] = a[i] / ``5``;``                ``count5++;``            ``}``        ``}``        ``// return the minimum``        ``return` `(count2 < count5) ? count2 : count5;``    ``}``     ` `    ``// Driver function ``    ``public` `static` `void` `main(String argc[])``    ``{``        ``int``[] a = ``new` `int``[]{ ``10``, ``100``, ``20``, ``30``, ``                            ``50``, ``91``, ``12``, ``80` `};``        ``int` `n = ``8``;``        ``System.out.println(countZeroso(a, n));``    ``}``     ` `}`` ` `// This code is contributed ``// by Sagar Shukla `

## Python 3

 `# Python 3 program for count ``# total zero in product of array`` ` `# Returns count of zeros ``# in product of array``def` `countZeros(a, n) :``    ``count2 ``=` `0``    ``count5 ``=` `0``    ``for` `i ``in` `range``(``0``, n) :``         ` `        ``# count number of 2s ``        ``# in each element``        ``while` `(a[i] ``%` `2` `=``=` `0``) :``            ``a[i] ``=` `a[i] ``/``/` `2``            ``count2 ``=` `count2 ``+` `1``         ` `         ` `        ``# count number of 5s ``        ``# in each element``        ``while` `(a[i] ``%` `5` `=``=` `0``) :``            ``a[i] ``=` `a[i] ``/``/` `5``            ``count5 ``=` `count5 ``+` `1``         ` `         ` `    ``# return the minimum``    ``if``(count2 < count5) :``        ``return` `count2``    ``else` `: ``        ``return` `count5``         ` ` ` `# Driven Program``a ``=` `[ ``10``, ``100``, ``20``, ``30``, ``50``, ``90``, ``12``, ``80` `]``n ``=` `len``(a)``print``(countZeros(a, n))`` ` `# This code is contributed ``# by Nikita Tiwari.`

## C#

 `// C# program for count total``// zero in product of array``using` `System;`` ` `public` `class` `GfG``{``    ``// Returns count of zeros in product of array``    ``public` `static` `int` `countZeroso(``int``[] a, ``int` `n)``    ``{``        ``int` `count2 = 0, count5 = 0;``        ``for` `(``int` `i = 0; i < n; i++) ``        ``{`` ` `            ``// count number of 2s ``            ``// in each element``            ``while` `(a[i] % 2 == 0) ``            ``{``                ``a[i] = a[i] / 2;``                ``count2++;``            ``}`` ` `            ``// count number of 5s ``            ``// in each element``            ``while` `(a[i] % 5 == 0) ``            ``{``                ``a[i] = a[i] / 5;``                ``count5++;``            ``}``        ``}``        ``// return the minimum``        ``return` `(count2 < count5) ? count2 : count5;``    ``}``     ` `    ``// Driver function ``    ``public` `static` `void` `Main()``    ``{``        ``int``[] a = ``new` `int``[]{ 10, 100, 20, 30, ``                            ``50, 91, 12, 80 };``        ``int` `n = 8;``        ``Console.WriteLine(countZeroso(a, n));``    ``}``     ` `}`` ` `// This code is contributed ``// by vt_m`

## PHP

 ``

Output:
``` 9
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up