Euler discovered the remarkable quadratic formula:
$$n^2 + n + 41$$It turns out that the formula will produce 40 primes for the consecutive values n = 0 to 39. However, when $$n = 40, 40^2 + 40 + 41 = 40(40 + 1) + 41$$ is divisible by 41, and certainly when $$n = 41, 41^2 + 41 + 41$$ is clearly divisible by 41.
The incredible formula $$n^2 − 79n + 1601$$ was discovered, which produces 80 primes for the consecutive values n = 0 to 79. The product of the coefficients, −79 and 1601, is −126479.
Considering quadratics of the form:
$$n^2 + an + b, \mbox{ where } |a| < 1000 \mbox{ and } |b| < 1000$$where |n| is the modulus/absolute value of n (e.g. |11| = 11 and |−4| = 4).
Find the product of the coefficients, a and b, for the quadratic expression that produces the maximum number of primes for consecutive values of n, starting with n = 0.
first we create the function:
In [5]:
from pyprimes import isprime
def f(n, a, b):
return n**2 + a * n + b
then get the prime numbers
In [20]:
a_l = 1000
b_l = 1000
c_p = dict()
for a in range(- a_l + 1, a_l - 1):
for b in range(-b_l + 1,b_l - 1):
n = 0
while isprime(f(n, a, b)):
n += 1
if n > 1
c_p[a, b] = n
get the max value
In [33]:
m_n = max(c_p.values())
filter for max value
In [34]:
r = [k for k,v in c_p.items() if v == m_n]
find the product
In [36]:
from numpy import prod
print( prod(r), r, m_n)