-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproblem=34.py
More file actions
27 lines (22 loc) · 775 Bytes
/
problem=34.py
File metadata and controls
27 lines (22 loc) · 775 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Digit Factorials - https://projecteuler.net/problem=34
def factorial(n):
if n == 0 or n == 1:
return 1
result = 1
for i in range(2, n + 1):
result *= i
return result
def sum_of_digit_factorials(num):
return sum(factorial(int(digit)) for digit in str(num))
def find_curious_numbers(limit):
curious_numbers = []
for i in range(10, limit):
if i == sum_of_digit_factorials(i):
curious_numbers.append(i)
return curious_numbers
if __name__ == "__main__":
limit = 50000 # A reasonable upper limit for searching curious numbers
curious_numbers = find_curious_numbers(limit)
result = sum(curious_numbers)
print("Curious numbers:", curious_numbers)
print("Sum of curious numbers:", result)