Home >Backend Development >C++ >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.
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 −
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
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!