problem243.py 651 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env python
  2. from __future__ import division
  3. from primes import is_prime, nprimes
  4. print list(nprimes(15499))
  5. import sys; sys.exit()
  6. def times(a, b):
  7. return a * b
  8. known_primes = {}
  9. def primes(n):
  10. for p in range(2, n):
  11. if p in known_primes:
  12. yield p
  13. elif is_prime(p):
  14. known_primes[p] = None
  15. yield p
  16. def phi(n):
  17. return reduce(times, iter(1 - 1 / p for p in primes(n) if not n % p), n)
  18. def resilience(d):
  19. return phi(d) / (d - 1)
  20. d = 30
  21. while True:
  22. print d,
  23. res = resilience(d)
  24. if res < 15499 / 94744:
  25. break
  26. print res, 15499 / 94744
  27. d += 30