Home >Backend Development >C++ >C program to check strong numbers

C program to check strong numbers

WBOY
WBOYforward
2023-09-07 09:09:121010browse

C program to check strong numbers

Given a number 'n', we need to check if the given number is a strong number.

A strong number means that the sum of the factorials of all its numbers is equal to the number 'n'. Factorial is the result of multiplying all numbers less than that number, including that number, and is represented by ! (exclamation mark). For example: 4! = 4x3x2x1 = 24.

So to determine if a number is strong we need to extract each digit of the number, for example the number is 145 then we need to extract 1, 4 and 5 and then we will calculate the factorial of each number , that is 1! = 1, 4! = 24,5! =120.

Now we add 1 24 120 and we get 145 which is exactly the same as the given input so we can say that this number is strong.

Example

Input: n = 124
Output: No it is not a strong number
Explanation: 1! + 2! + 4! = 27 which is not equal to n i.e, 124
Input: n = 145
Output: Yes it is a strong number
Explanation: 1! + 4! + 5! = 145

The method used below is as follows to solve the problem

We will −

  • from the ones position Start by taking each number and find its factorial.
  • We add the factorials of these numbers.
  • Compare the result with the original number, if they are equal, the number is a strong number; otherwise the number is not a strong number.

Algorithm

START
In Function int factorial(int r)
   Step1 -> Initialize int fact and set as 1
   Step2-> Loop while r>1
      Set fact as fact * r
      Decremnet r by 1
   End Loop
   Step 3-> Return fact
   End Function factorial
In Function int check(int n)
   Step 1-> Initialize int temp, rem and result, set result as 0
   Step 2-> Set temp as n
   Step 3-> Loop while temp
      Set rem as temp % 10
      Set result as result + factorial(rem)
      Set temp as temp/10
   End loop
   Step 4-> If result == n then,
      Return 1
   Step 5-> Else
   Return 0
   End function check
In main(int argc, char const *argv[])
   Step 1-> Initialise and set n as 145
   Step 2->If check(n) is valid then,
      Print "Yes it is a strong number”
   Step 3-> Else
      Print "no it is not a strong number”
STOP

Example

Real-time demonstration

#include <stdio.h>
int factorial(int r) {
   int fact = 1;
   while(r>1) {
      fact = fact * r;
      r--;
   }
   return fact;
}
int check(int n) {
   int temp, rem, result = 0;
   temp = n;
   while(temp) {
      rem = temp % 10;
      result = result + factorial(rem);
      temp = temp/10;
   }
   if (result == n)
      return 1;
   else
      return 0;
}
int main(int argc, char const *argv[]) {
   int n = 145;
   if (check(n))
      printf("Yes it is a strong number</p><p>");
   else
      printf("no it is not a strong number</p><p>");
   return 0;
}

If you run the above code, the following output will be generated −

Yes it is a strong number

The above is the detailed content of C program to check strong numbers. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete