Peterson Number in C++

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