Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,859 questions

51,780 answers

573 users

How to find all the numbers that are equal to the sum of the factorials of their digits in Python

1 Answer

0 votes
# Example: 145 = 1! + 4! + 5! = 1 + 24 + 120 = 145

# Function to compute the factorial of a number
def factorial(n):
    fact = 1
    for i in range(2, n + 1):
        fact *= i
    return fact

# Function to find all numbers equal to the sum of the factorials of their digits
def find_digit_factorial_numbers():
    # Precompute factorials of digits 0-9
    factorials = [factorial(i) for i in range(10)]

    # Define an upper limit (7 * 9! is a safe limit for this problem)
    upper_limit = 7 * factorials[9]

    # Iterate through all numbers and check the condition
    for num in range(10, upper_limit + 1):
        temp = num
        digit_sum = 0

        # Calculate the sum of factorials of digits
        while temp > 0:
            digit = temp % 10
            digit_sum += factorials[digit]
            temp //= 10

        # Check if the number equals the sum of the factorials of its digits
        if digit_sum == num:
            print(f"{num} is a digit factorial number.")

find_digit_factorial_numbers()


'''
run:

145 is a digit factorial number.
40585 is a digit factorial number.

'''

 



answered Nov 9, 2025 by avibootz
...