# 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: