Untitled
unknown
python
3 years ago
811 B
10
Indexable
import time
results = []
def recursion(digit, initial, candidate, n):
c = candidate
if digit < 0:
if sum([pow(int(d), n) for d in str(candidate)]) == candidate:
results.append(candidate)
return
if digit == 0:
recursion(digit=digit - 1, initial=0, candidate=candidate + initial * pow(digit, n), n=n)
if digit > 0:
for x in range(initial + 1):
recursion(digit=digit - 1, initial=initial - x, candidate=c, n=n)
if x != initial:
c += pow(digit, n)
if __name__ == '__main__':
# Dwse input
input_N = 8
start = time.time()
recursion.counter = 0
recursion(9, input_N, 0, input_N)
end = time.time()
print(f'Wall time passed: {end - start}s')
print('Results:')
print(results)
Editor is loading...