-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path030.py
More file actions
executable file
·41 lines (31 loc) · 936 Bytes
/
030.py
File metadata and controls
executable file
·41 lines (31 loc) · 936 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits:
#1634 = 14 + 64 + 34 + 44
#8208 = 84 + 24 + 04 + 84
#9474 = 94 + 44 + 74 + 44
#As 1 = 14 is not a sum it is not included.
#The sum of these numbers is 1634 + 8208 + 9474 = 19316.
#Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.
#Answer:
#443839
from time import time; t = time()
max_search = 6
power = 5
d = [i**power for i in range(10)]
def split_num(n, size):
if size == 1 or n == 0:
yield 0
return
j = 0
for i in range(n+1):
for v in split_num(n-i, size-1):
yield j+v
j += d[size-1]
s = -1
for n in split_num(max_search, 10):
m = str(n)
if n == sum(m.count(str(i))*d[i] for i in range(1, 10)):
#print n
s += n
print(s)#, time() - t