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