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.