In this tutorial, we will learn about the Peterson number and write a C++ program to check if the given number is a Peterson number or not.

## What is Peterson Number?

A number is said to be a Peterson number if the sum of factorials of each digit of the number is equal to the number itself.

**Peterson numbers example:**

`Number = 145`

145 = !1 + !4 + !5

= 1 + 4*3*2*1 + 5*4*3*2*1

= 1 + 24 + 120

= **145 = 145**

Therefore, we can see that after the sum of the factorial of 145 is equal to the number 145 itself. Hence the Peterson Number.

**Cpp program to check a number is Peterson number or not**

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <iostream> using namespace std; int peterson_func(int num) { int rem, sum = 0, fact = 1, i; while (num != 0) { rem = num % 10; for (i = 1; i <= rem; i++) fact *= i; sum += fact; fact = 1; num /= 10; } return sum; } int main() { int num, sum = 0, temp; cout << "Enter a number: "; cin >> num; temp = num; sum = peterson_func(num); if (sum == temp) cout << num << " is a Peterson number"; else cout << num << " is NOT a Peterson number"; return 0; } |

**Output:**

`Enter a number: 145 `

145 is a Peterson number

`Enter a number: 55 `

55 is not a Peterson number