Menu Close

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 5

Eg:

Trailing 0s in 127! = floor(127/5) + floor(127/25) + floor(127/125)
= 25 + 5 + 1
= 31

Trailing 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 C language:

#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: 5
Total trailing zeros: 1

Enter the number: 23
Total trailing zeros: 4

Enter the number: 15
Total trailing zeros: 3

To learn more about golang, Please refer given below link:

https://www.techieindoor.com/go-lang-tutorial/
https://www.techieindoor.com/go-lang-tutorial/

References:

 https://golang.org/doc/
https://golang.org/pkg/
https://golang.org/pkg/fmt/
https://golang.org/pkg/fmt/#Println
Posted in golang, golang program

Leave a Reply

Your email address will not be published. Required fields are marked *