def find(aLen, bLen): cEnd = 9 - aLen - bLen aEnd = cEnd + aLen for p in itertools.permutations(range(1, 10), aEnd): if p[cEnd - 1] == 5 or p[aEnd - 1] in (1, 5): continue c = makeNum(p, 0, cEnd) a = makeNum(p, cEnd, aEnd) if c % a: continue b = c // a bdigs = set(range(1, 10)) - set(p) good = True for d in digits(b): if d in bdigs: bdigs.remove(d) else: good = False break if good and not bdigs: print('%d = %d * %d' % (c, a, b)) results.add(c)
from math import factorial from nums import digits digFac = [factorial(x) for x in range(10)] result = 0 for x in range(10, 10 ** 6): if x == sum(digFac[d] for d in digits(x)): print(x) result += x print('Sum:', result)
from nums import digits power = 5 result = 0 pdig = [x ** power for x in range(10)] for x in range(10, 10 ** 7): s = 0 for dig in digits(x): s += pdig[dig] if s > x: break if s == x: result += x print(x) print("Sum: ", result)
from nums import digits power = 5 result = 0 pdig = [x**power for x in range(10)] for x in range(10, 10**7): s = 0 for dig in digits(x): s += pdig[dig] if s > x: break if s == x: result += x print(x) print("Sum: ", result)