## C# program to check if a number is Strong number or not:

A number is called a *Strong number* if the sum of all factorials of the digits in the number is *equal* to the number. For example, *145* is a *strong number* because *1! + 4! + 5! = 145*. In this post, we will learn how to check if a *user given* number is *strong or not* in *C#*.

We will write one *C#* program that will take one number as input from the user and it will print one message that the number is *strong number* or not.

### C# program:

Below is the complete *C#* program:

```
using System;
public class Program
{
static int getFactorial(int number){
int factorial = 1;
for(int i = number; i > 1; i--){
factorial = factorial * i;
}
return factorial;
}
public static void Main()
{
int givenNumber;
Console.WriteLine("Enter a number to check");
givenNumber = Convert.ToInt32(Console.ReadLine());
int sum = 0;
int copyNumber = givenNumber;
while(copyNumber != 0){
int lastDigit = copyNumber%10;
sum = sum + getFactorial(lastDigit);
copyNumber = copyNumber / 10;
}
if(sum == givenNumber){
Console.WriteLine("Given number is a strong number");
}else{
Console.WriteLine("Given number is not a strong number");
}
}
}
```

### Explanation:

Here,

*givenNumber*is an integer variable to hold the user input number. We are reading one number that user entered on console and storing it in*givenNumber*.*sum*variable is used to hold the sum of all*factorials*of the digits of a number.- We are copying the value of user entered number to
*copyNumber*so that we donâ€™t have to modify the original variable. - Using a
*while loop*, we are getting the factorial of each digit and adding that value to*sum*.*lastDigit*is the last digit and we are finding it using*number % 10*.*getFactorial*method returns the factorial of a number that we are passing. At the end of the*while loop*, we are changing the number to*number / 10*, i.e. we are removing the last digit from that number. - The
*while loop*runs until the value of*copyNumber*become*0*. - After the
*while loop*ends, we are checking if*sum*is equal to*givenNumber*or not. If equal, we are printing that the given number is*strong*, else not.

### Sample Output:

If you run this program, it will print outputs as like below :

```
Enter a number to check
145
Given number is a strong number
Enter a number to check
10
Given number is not a strong number
```