euler/python/e026.py

39 lines
779 B
Python
Raw Normal View History

2015-11-16 20:56:24 +01:00
def primes(n):
""" Nice way to calculate primes. Should be fast. """
l = range(2, n + 1)
_l = []
while True:
p = l[0]
if p * p > n:
return _l + l
l = [i for i in l if i % p != 0]
_l.append(p)
def produce_prime(a, b, n, primes):
x = n*n + a*n + b
return x in primes
def f_027():
""" n^2 + a*n + b
1) b must be prime
"""
p6 = set(primes(1000000))
p3 = primes(1000)
options = [(a, b)
for a in range(1, 1000, 2)
for b in p3]
print(len(options))
for n in range(100):
options = [(a, b)
for a, b in options
if produce_prime(a, b, n, p6)]
print(options)
print(len(options))
f_027()