| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/usr/bin/env python
- from __future__ import division
- from utils import is_prime, nprimes
- #print list(nprimes(15499))
- #import sys; sys.exit()
- def times(a, b):
- return a * b
- known_primes = {}
- def primes(n):
- for p in range(2, n):
- if p in known_primes:
- yield p
- elif is_prime(p):
- known_primes[p] = None
- yield p
- def phi(n):
- return reduce(times, iter(1 - 1 / p for p in primes(n) if not n % p), n)
- def resilience(d):
- return phi(d) / (d - 1)
- for d in nprimes(15499):
- print d,
- res = resilience(d)
- if res < 15499 / 94744:
- print d
- break
- print res, 15499 / 94744
- d += 30
|