Strong Number Or Not
Strong Number or Not:-
A strong number is a special number whose sum of the factorial of the digits is equal to the original number. For instance, the number 145 is a strong number because 1! + 4! + 5! = 145.
The following algorithm and program will help to determine if a given number is a factorial.
Algorithm to test whether a number is Strong or not:
Step 1. Start
Step 2. Ask a number from the user to test if it is a strong number.
Step 3. Store this number in a variable, say num and copy its value to a temporary variable for further calculations (originalNum =num).
Step 4. Initialize a variable to store the sum of the factorial of the digits, say sum = 0.
Step 5. Calculate the last digit of the given number and store the result in a variable. Let this variable be lastDigit = num %10.
Step 6. Calculate the factorial of the last digit and store its value in a variable, say fact.
Step 7. Add the values, in fact, to sum or, sum = sum + fact.
Step 8. Remove the last digit from num as it is not required in the later stages.
Step 9. Repeat steps 3 to 6 until the value of num is greater than zero.
Step 10. At the end of the loop, check the condition for the strong number. If sum == originalNum, then the number inserted by the user is a Strong Number, otherwise, it is not.
C Program to check wheatear a number is Strong
/**C program to check Strong Number */ #include <stdio.h> int main() { int i, original_N, number, l_Digit, sum; long factorial; /* Ask a number from the user */ printf("Insert a number: "); scanf("%d", &number); /* Copy the value of number to a temporary variable */ Original_N = number; sum = 0; /* Calculate the sum of factorial of digits */ while(number > 0) { /* Calculate the last digit of number */ l_Digit = number % 10; /* Calculate the factorial of last digit */ factorial = 1; for(i=1; i<=l_Digit; i++) { factorial = factorial * i; } /* Add value of factorial to sum */ sum = sum + factorial; number = number / 10; } /* Condition to check Strong Number */ if(sum == original_N) { printf("%d is STRONG NUMBER", original_N); } else { printf("%d is NOT STRONG NUMBER", original_N); } return 0; }
Output
Insert a number: 154 145 is a STRONG NUMBER.