# Strong Number in Python

A strong number in Python is a number whose sum of factorials of its digits is equal to the original number. Here is a Python program that checks whether a given number is a strong number or not:

```def factorial(n):
"""
Returns the factorial of a number n.
"""
if n == 0:
return 1
else:
return n * factorial(n-1)

def is_strong(n):
"""
Returns True if a number n is a strong number, False otherwise.
"""
sum = 0
temp = n
while temp > 0:
digit = temp % 10
sum += factorial(digit)
temp //= 10
return sum == n

# Example usage
print(is_strong(145)) # True
print(is_strong(123)) # False
```

The `factorial` function calculates the factorial of a number using recursion, and the `is_strong` function checks whether a number is strong or not by iterating through its digits and calculating their factorials. The `//` operator is used for integer division, which is needed to obtain the individual digits of a number.

### Strong Number Using the for loop:

Certainly! Here’s a Python program that checks whether a given number is a strong number using a `for` loop:

```def factorial(n):
"""
Returns the factorial of a number n.
"""
if n == 0:
return 1
else:
return n * factorial(n-1)

def is_strong(n):
"""
Returns True if a number n is a strong number, False otherwise.
"""
sum = 0
for digit in str(n):
sum += factorial(int(digit))
return sum == n

# Example usage
print(is_strong(145)) # True
print(is_strong(123)) # False
```

In this implementation, the `for` loop iterates over each digit in the input number as a string, converts it to an integer, and calculates its factorial using the `factorial` function. The sum of the factorials of all the digits is compared with the original number to determine whether it is a strong number or not.