Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Euler published the remarkable quadratic formula:
- #n² + n + 41
- #It turns out that the formula will produce 40 primes for the consecutive values n = 0 to 39. However, when n = 40, #402 + 40 + 41 = 40(40 + 1) + 41 is divisible by 41, and certainly when n = 41, 41² + 41 + 41 is clearly divisible #by 41.
- #Using computers, the incredible formula n² − 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² + an + b, where |a| < 1000 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.
- #isPrime algorithm from MIT 6.00x course notes
- def isPrime(n):
- '''check if integer n is a prime'''
- # range starts with 2 and only needs to go up the squareroot of n
- for x in range(2, int(n**0.5)+1):
- if n % x == 0:
- return False
- return True
- maxn, maxa, maxb = 0, 0, 0
- for a in range(-1000,1000):
- for b in range(-1000,1000):
- n = 0
- while (n**2)+(a*n)+b > 1 and isPrime((n**2)+(a*n)+b):
- n += 1
- if n > maxn:
- maxn, maxa, maxb = n, a, b
- print maxn, maxa, maxb, maxa*maxb
- #Improvement (Not Implemented): Knowing that b must be prime and a must be odd we could iterate through the #possibilities to find a solution.
Advertisement
Add Comment
Please, Sign In to add comment