# 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.
```

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

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"``); ` `    ``} ` `} `

## Python3

 `# 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/special ` `def` `isKrishnamurthy(n) : ` `    ``sum` `=` `0` `    ``temp ``=` `n ` `    ``while` `(temp !``=` `0``) : ` ` `  `        ``# calculate factorial of last digit ` `        ``# of temp and add it to sum ` `        ``rem ``=` `temp``%``10` `        ``sum` `=` `sum` `+` `factorial(rem) ` ` `  `        ``# 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 Prashant Aggarwal `

## 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.

This article is contributed by DANISH KALEEM. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.