### Go Language - Program to Check Krishnamurthy Number

Hello everyone, today we will create a Go program to check if the given number is an Krishnamurthy number or not.
Krishnamurthy number is also referred to as a Strong number.

A number is said to be Krishnamurthy if the factorial sum of all its digits is equal to that number.

## For example,

*Number = 40585*

*= 4! + 0! + 5! + 8! + 5!*

*= 1 * 2 * 3 * 4 + 1 + 1 * 2 * 3 * 4 * 5 + 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 + 1 * 2 * 3 * 4 * 5*

*= 24 + 1 + 120 +*

**40320 + 120**

**=**40585## Example 1: Go program that checks if the given number is a Krishnamurthy number or not.

/*Go program to check whether the given * number is a Krishnamurthy number or not. */package main

import "fmt"

// Main functionfunc main() {

//sample 1 number1 := 40585 KrishnamurthyNumber(number1)

//sample 2 number2 := 13789 KrishnamurthyNumber(number2)

//sample 3 number3 := 1009 KrishnamurthyNumber(number3)

}

func KrishnamurthyNumber(number int) {

//initialize sum to 0 sum := 0

//create a copy of the number tempNumber := number

//perform operation until tempNumber will not equal to 0 for tempNumber != 0 { /* calculate the factorial of the last digit of the tempNumber and then add it to the sum */ sum = sum + Factorial(tempNumber%10)

// replace the value of tempNumber by tempNumber/10 tempNumber = tempNumber / 10 } //If sum == number equal, number is krishnamurthy number if sum == number { fmt.Println(number, "is Krishnamurthy Number") } else { fmt.Println(number, "is not a Krishnamurthy Number") }}

//Method to calculate the factorial of the numberfunc Factorial(number int) int { fact := 1 for i := 1; i <= number; i++ { fact *= i } return fact}

## Output:

## Example 2: Go program that checks if the number from the standard input is a Krishnamurthy number or not.

/*Go program to check whether the number from the standard input * is a Krishnamurthy number or not. */package main

import "fmt"

// Main functionfunc main() {

var number int fmt.Println("Enter an integer value : ")

_, err := fmt.Scanf("%d", &number)

if err != nil { fmt.Println(err) }

KrishnamurthyNumber(number)

}

func KrishnamurthyNumber(number int) {

//initialize sum to 0 sum := 0

//create a copy of the number tempNumber := number

//perform operation until tempNumber will not equal to 0 for tempNumber != 0 { /* calculate the factorial of the last digit of the tempNumber and then add it to the sum */ sum = sum + Factorial(tempNumber%10)

// replace the value of tempNumber by tempNumber/10 tempNumber = tempNumber / 10 }

//If sum == number equal, number is krishnamurthy number if sum == number { fmt.Println(number, "is Krishnamurthy Number") } else { fmt.Println(number, "is not a Krishnamurthy Number") }}

//Method to calculate the factorial of the numberfunc Factorial(number int) int { fact := 1 for i := 1; i <= number; i++ { fact *= i } return fact}