def problem49(): choice = xrange(1489, 3340, 2) for n in choice: if not prime.hasFactors(n, primes): m1, strn = n+3330, str(n) strm1, setn = str(m1), set(strn) if set(strm1)==setn and not prime.hasFactors(m1, primes): m2 = m1+3330 if set(str(m2))==setn and not prime.hasFactors(m2, primes): return strn+strm1+str(m2)
def problem27(): """http://projecteuler.net/index.php?section=problems&id=27 >>> problem27() -59231 """ max_pair = (0,0,0) primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47] for a in xrange(-999, 1000): for b in xrange(max(2, 1-a), 1000): # b >= 2, a + b + 1 >= 2 n, count = 0, 0 while True: v = n*n + a*n + b v = v <=0 and -v or v if v > primes[-1]: prime.primesBelow_fast(v, primes) if prime.isprime_fast(v, primes): count = count + 1 else: break else: if not prime.hasFactors(v, primes): count = count + 1 else: break n = n + 1 if count > max_pair[2]: max_pair = (a,b,count) return max_pair[0] * max_pair[1]