# Go – Program to count trailing zeros in factorial of a number in go golang

In this tutorial, We are going to learn how to get total count trailing zeros in factorial of a number in o(n) time complexity in go golang and C language.

Example:

` Input: 5 Factorial of 5: 120 Total trailing zeros: 1 --------------------------------------------------  Input: 23 Factorial of 23: 25852016738884976640000  Total trailing zeros: 4 -------------------------------------------------- Input: 15 Factorial of 15: 1307674368000  Total trailing zeros: 3 `

Mathematics formula to count trailing zeros in factorial of a number:

`Trailing 0s in n! = floor(n/5) + floor(n/25) + floor(n/125) + ....It will go till we get 0 after dividing n by multiple of 5Eg:Trailing 0s in 127! = floor(127/5) + floor(127/25) + floor(127/125)    = 25 + 5 + 1    = 31Trailing 0s in 50! = floor(50/5) + floor(50/25)   = 10 + 2   = 12`

Algorithm:

• Get input number
• Set index variable to 5
• Set count variable to 0
• Run loop from index number to input number
• In each iteration, Do divide input number by index number. Store the dividend into count variable. Increment index by multiple of 5

#### Code in go golang:

```package main

import "fmt"

func main() {

var n int

fmt.Print("Enter the number: ")
fmt.Scan(&n)

var i int = 5
var count int = 0

for i <= n {

count = count + (n / i);

i = i * 5;
}

fmt.Printf("Total trailing zeros: %d", count)
}```

#### Code in Clanguage:

```#include <stdio.h>

int main() {
int n;

printf("Enter the number: ");
scanf("%d", &n);

int count = 0, index;

for (index = 5; index <= n; index = index * 5) {

count = count + (n / index);

}

printf("\nTotal trailing zeros: %d", count);
}```

Output:

`Enter the number: 5Total trailing zeros: 1Enter the number: 23Total trailing zeros: 4Enter the number: 15Total trailing zeros: 3`

`https://www.techieindoor.com/go-lang-tutorial/`
` https://golang.org/doc/ https://golang.org/pkg/ https://golang.org/pkg/fmt/ https://golang.org/pkg/fmt/#Println `