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