sys 0m0.036s """ def is_permutation(p, q): p = str(p) q = str(q) pc = [0]*10 for c in p: pc[int(c)] += 1 qc = [0]*10 for c in q: qc[int(c)] += 1 return pc == qc primes = [p for p in get_primes(10**4) if p > 1000] for i in xrange(len(primes)): for j in xrange(i+1, len(primes)): diff = primes[j] - primes[i] if is_permutation(primes[i], primes[j]): for k in xrange(j+1, len(primes)): diff2 = primes[k] - primes[j] if diff2 > diff: break elif diff2 == diff and is_permutation(primes[j], primes[k]): N = ''.join(map(str, [primes[i], primes[j], primes[k]])) if N == '148748178147': continue print 'Answer to problem 49:', N exit()
#!/usr/bin/python # Euler Project Problem 27 from eulertools import get_primes """Benchmark Intel Core2 Duo CPU P8400 @ 2.26GHz real 0m12.114s user 0m12.089s sys 0m0.012s """ primes = get_primes(1000) S = 0 N = 0 for a in xrange(-999, 1000): for b in xrange(-999, 1000): n = 0 while n**2+a*n+b in primes: n += 1 if n > N: N = n S = a*b print 'Answer to problem 27:', S
#!/usr/bin/python # Euler Project Problem 37 """Benchmark Intel Core2 Duo CPU P8400 @ 2.26GHz real 0m0.761s user 0m0.736s sys 0m0.024s """ from eulertools import get_sieve, get_primes sieve = get_sieve(10**6) primes = get_primes(10**6) del primes[0:4] res = 0 for p in primes: for i in xrange(0, len(str(p))): if not sieve[int(str(p)[i:])]: truncatable_prime = False break if not sieve[int(str(p)[:i+1])]: truncatable_prime = False break truncatable_prime = True if truncatable_prime: res += p print 'Answer to problem 37:', res