problem47.py 581 B

12345678910111213141516171819202122232425262728
  1. #!/usr/bin/env python
  2. from __future__ import division
  3. from utils import primes_until
  4. primes = list(primes_until(10000))
  5. def distinct(n, frm=0):
  6. for i, p in enumerate(primes[frm:]):
  7. div = n / p
  8. if div < 2:
  9. break
  10. if div.is_integer():
  11. others = set([int(div)]) if div in primes[i:] else distinct(div, i)
  12. if others:
  13. return others | set([p])
  14. n = N = 4
  15. counter = 0
  16. while counter != N:
  17. factors = distinct(n)
  18. counter = counter + 1 if factors and len(factors) == N else 0
  19. n += 1
  20. print n - N