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

C program to check strong numbers

WBOY
Release: 2023-09-07 09:09:12
forward
1005 people have browsed it

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
Copy after login

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
Copy after login

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;
}
Copy after login

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

Yes it is a strong number
Copy after login

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!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template