C program to check if a number is Strong number
Learn how to write a C program to check if a number is a Strong number. This guide includes an explanation of Strong numbers, a step-by-step algorithm, and complete code with examples.
A Strong number (also known as a Krishnamurthy number) is a special number whose sum of the factorials of its digits is equal to the number itself. For example, 145 is a Strong number because 1! + 4! + 5! = 1 + 24 + 120 = 145.
In this article, we will write a C program to check whether a given number is Strong. We'll begin by understanding the concept of Strong numbers, then outline the algorithm, and finally provide the complete C program with detailed explanations.
Understanding Strong Numbers
A Strong number satisfies the following condition:
Sum of the factorials of its digits=Number
For example:
- 145 is a Strong number because 1! + 4! + 5! = 145.
Algorithm to Check for a Strong Number
- Input the number: Get the number from the user.
- Find the factorial of each digit: Iterate through each digit of the number and find its factorial.
- Sum the factorials: Calculate the sum of the factorials of all digits.
- Compare the sum with the original number: If the sum equals the original number, it is a Strong number; otherwise, it is not.
Write a C program to check if a number is Strong number
Here is the complete C program to check whether a given number is a Strong number or not:
#include <stdio.h>
int main() {
int num, originalNum, remainder, sum = 0;
// Input the number from the user
printf("Enter an integer: ");
scanf("%d", &num);
// Store the original number to compare later
originalNum = num;
// Calculate the sum of the factorials of each digit
while (num > 0) {
remainder = num % 10;
// Calculate factorial of the remainder
int fact = 1;
for (int i = 1; i <= remainder; i++) {
fact *= i;
}
sum += fact;
num /= 10;
}
// Check if the sum of the factorials is equal to the original number
if (sum == originalNum) {
printf("%d is a Strong number.", originalNum);
} else {
printf("%d is not a Strong number.", originalNum);
}
return 0;
}
Output
Enter an integer: 40585
40585 is a Strong number.
Explanation of the Code
- Input the Number:
scanf("%d", &num);
reads the integer input from the user.
- Store the Original Number:
originalNum = num;
stores the original number to compare later.
- Calculate the Sum of the Factorials of Each Digit:
- The
while
loop iterates through each digit of the number. remainder = num % 10;
extracts the last digit.- The
for
loop calculates the factorial of the digit. sum += fact;
adds the factorial of the digit to the sum.num /= 10;
removes the last digit from the number.
- The
- Check for Strong Number:
- The condition
if (sum == originalNum)
checks if the sum of the factorials is equal to the original number. If true, it prints that the number is a Strong number; otherwise, it states that it is not.
- The condition
Example Runs
Let's look at some example runs to see how the program works:
Example 1
Enter an integer: 145
145 is a Strong number.
- Calculation: 1! + 4! + 5! = 1 + 24 + 120 = 145.
Example 2
Enter an integer: 123
123 is not a Strong number.
- Calculation: 1! + 2! + 3! = 1 + 2 + 6 = 9.
If you found this article helpful, you might also be interested in learning how to calculate factorial of a number. Check out our detailed guide below: