Go Program to Count the Number of Digits in a Number

1. Introduction

Numbers are everywhere! But have you ever thought about how many digits a number has? Counting digits might seem trivial, but it's a fundamental operation, especially in number theory and various computational tasks. In this blog post, we will walk you through a Go program that helps you determine the number of digits in a given number.

2. Program Overview

Our Go program will accomplish the following:

1. Accept an integer input from the user.

2. Count the number of digits in the provided number.

3. Display the number of digits to the user.

3. Code Program

// Declare the package name
package main

// Import the necessary package for input-output operations
import "fmt"

// Function to count the number of digits in a number
func CountDigits(n int) int {
    count := 0
    for n != 0 {
        n /= 10
    return count

// Main function where the program execution begins
func main() {
    var num int
    fmt.Print("Enter the number: ")

    // If the user enters a negative number, convert it to positive
    if num < 0 {
        num = -num

    // Find out the number of digits using the CountDigits function
    digits := CountDigits(num)
    fmt.Printf("The number %d has %d digits.\n", num, digits)


If you input the number 12345:
Enter the number: 12345
The number 12345 has 5 digits.

4. Step By Step Explanation

1. Setting Up: We begin by specifying the package and importing the necessary libraries for our program.

2. Counting Digits: The CountDigits function loops through the number, incrementing the count for each digit by dividing the number by 10 until the number is 0.

3. Getting User Input: The main function prompts the user to input a number. It checks if the number is negative and converts it to its absolute value.

4. Displaying the Result: The main function then calls CountDigits to get the number of digits and displays the result using fmt.Printf.

With this program, you can easily determine the number of digits in any number, whether positive or negative!