# Check if a number is a Krishnamurthy Number or not

A Krishnamurthy number is a number whose sum of the factorial of digits is equal to the number itself. For example 145, sum of factorial of each digits:
1! + 4! + 5! = 1 + 24 + 120 = 145

Examples:

```Input : 145
Output : YES
Explanation: 1! + 4! + 5! =
1 + 24 + 120 = 145, which is equal to input,
hence YES.

Input : 235
Output : NO
Explanation: 2! + 3! + 5! =
2 + 6 + 120 = 128, which is not equal to input,
hence NO.
```

The idea is simple, we compute sum of factorials of all digits and then compare the sum with n.

## C++

 `// C++ program to check if a number ` `// is a krishnamurthy number ` `#include ` `using` `namespace` `std; ` ` `  `// Function to calculate the factorial of any number ` `int` `factorial(``int` `n) ` `{ ` `    ``int` `fact = 1; ` `    ``while` `(n != 0) { ` `        ``fact = fact * n; ` `        ``n--; ` `    ``} ` `    ``return` `fact; ` `} ` ` `  `// function to Check if number is krishnamurthy ` `bool` `isKrishnamurthy(``int` `n) ` `{ ` `    ``int` `sum = 0; ` ` `  `    ``int` `temp = n; ` `    ``while` `(temp != 0) { ` `        ``// calculate factorial of last digit ` `        ``// of temp and add it to sum ` `        ``sum += factorial(temp % 10); ` ` `  `        ``// replace value of temp by temp/10 ` `        ``temp = temp / 10; ` `    ``} ` ` `  `    ``// Check if number is krishnamurthy ` `    ``return` `(sum == n); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 145; ` `    ``if` `(isKrishnamurthy(n)) ` `        ``cout << ``"YES"``; ` `    ``else` `        ``cout << ``"NO"``; ` `    ``return` `0; ` `} `

## Java

 `// Java program to check if a number ` `// is a krishnamurthy number. ` `import` `java.util.*; ` `import` `java.io.*; ` ` `  `class` `Krishnamurthy { ` `    ``// function to calculate the factorial ` `    ``// of any number ` `    ``static` `int` `factorial(``int` `n) ` `    ``{ ` `        ``int` `fact = ``1``; ` `        ``while` `(n != ``0``) { ` `            ``fact = fact * n; ` `            ``n--; ` `        ``} ` `        ``return` `fact; ` `    ``} ` ` `  `    ``// function to Check if number is krishnamurthy ` `    ``static` `boolean` `isKrishnamurthy(``int` `n) ` `    ``{ ` `        ``int` `sum = ``0``; ` ` `  `        ``int` `temp = n; ` `        ``while` `(temp != ``0``) { ` `            ``// calculate factorial of last digit ` `            ``// of temp and add it to sum ` `            ``sum += factorial(temp % ``10``); ` ` `  `            ``// replace value of temp by temp/10 ` `            ``temp = temp / ``10``; ` `        ``} ` ` `  `        ``// Check if number is krishnamurthy ` `        ``return` `(sum == n); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``145``; ` `        ``if` `(isKrishnamurthy(n)) ` `            ``System.out.println(``"YES"``); ` `        ``else` `            ``System.out.println(``"NO"``); ` `    ``} ` `} `

## Python

 `# Python program to check if a number ` `# is a krishnamurthy number ` ` `  `# function to calculate the factorial ` `# of any number ` `def` `factorial(n) : ` `    ``fact ``=` `1``; ` `    ``while` `(n !``=` `0``) : ` `        ``fact ``=` `fact ``*` `n; ` `        ``n ``=` `n ``-` `1` `    ``return` `fact ` ` `  `# function to Check if number is ` `# krishnamurthy ` `def` `isKrishnamurthy(n) : ` `    ``sum` `=` `0` `    ``temp ``=` `n ` `    ``while` `(temp !``=` `0``) : ` ` `  `        ``# calculate factorial of last digit ` `        ``# of temp and add it to sum ` `        ``sum` `=` `sum` `+` `factorial( temp ``%` `10``) ` ` `  `        ``# replace value of temp by temp / 10 ` `        ``temp ``=` `temp ``/` `10``; ` `         `  `    ``# Check if number is krishnamurthy ` `    ``return` `(``sum` `=``=` `n) ` ` `  `# Driver code ` `n ``=` `145` `if` `(isKrishnamurthy(n)) : ` `    ``print` `"YES"` `else` `: ` `    ``print` `"NO"` ` `  ` `  `# This code is contributed by Nikita Tiwari `

/div>

## C#

 `// C# program to check if a number ` `// is a krishnamurthy number. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``// function to calculate the ` `    ``// factorial of any number ` `    ``static` `int` `factorial(``int` `n) ` `    ``{ ` `        ``int` `fact = 1; ` `         `  `        ``while` `(n != 0) { ` `            ``fact = fact * n; ` `            ``n--; ` `        ``} ` `         `  `        ``return` `fact; ` `    ``} ` ` `  `    ``// function to Check if number is ` `    ``// krishnamurthy ` `    ``static` `bool` `isKrishnamurthy(``int` `n) ` `    ``{ ` `        ``int` `sum = 0; ` ` `  `        ``int` `temp = n; ` `        ``while` `(temp != 0) { ` `             `  `            ``// calculate factorial of ` `            ``// last digit of temp and ` `            ``// add it to sum ` `            ``sum += factorial(temp % 10); ` ` `  `            ``// replace value of temp ` `            ``// by temp/10 ` `            ``temp = temp / 10; ` `        ``} ` ` `  `        ``// Check if number is ` `        ``// krishnamurthy ` `        ``return` `(sum == n); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 145; ` `        ``if` `(isKrishnamurthy(n)) ` `            ``Console.Write(``"YES"``); ` `        ``else` `            ``Console.Write(``"NO"``); ` `    ``} ` `} ` ` `  `// This code is contributed by nitin mittal. `

## PHP

 ` `

Output:

```YES
```

Interestingly, there are exactly four krishnamurthy numbers i.e. 1, 2, 145 and 40585 known to us.