How to find all the strong numbers in given range with Python

1 Answer

0 votes
# Strong numbers are the numbers that the sum of factorial of its digits
# is equal to the original number

# 145 is a strong number: 1 + 24 + 120 = 145


def factorial(n):
    fact = 1
    for i in range(2, n + 1):
        fact = fact * i
    return fact


for n in range(1, 1000000):
    tmp = n
    summ = 0
    while tmp != 0:
        reminder = tmp % 10
        summ = summ + factorial(reminder)
        tmp //= 10
    if summ == n:
        print(n)


'''
run:

1
2
145
40585

'''

 



answered May 10, 2017 by avibootz

Related questions

1 answer 120 views
1 answer 105 views
1 answer 177 views
1 answer 105 views
1 answer 215 views
...