problem32.py 510 B

123456789101112131415161718192021222324
  1. #!/usr/bin/env python
  2. from itertools import permutations
  3. def num(digits):
  4. return int(''.join(map(str, digits)))
  5. N = 9
  6. lens = [(mc, mp, N - mc - mp)
  7. for mc in range(1, N - 1)
  8. for mp in range(1, N - mc)]
  9. mem = {}
  10. s = 0
  11. for seq in permutations(range(1, N + 1)):
  12. for mcl, mpl, prl in lens:
  13. mc = num(seq[:mcl])
  14. mp = num(seq[mcl:mcl + mpl])
  15. pr = num(seq[mcl + mpl:])
  16. if mc * mp == pr and pr not in mem:
  17. mem[pr] = 1
  18. s += pr
  19. print s