Solution to problem 27
This commit is contained in:
parent
cfcbd05559
commit
46b2b4ca78
58
src/Python/Problem027.py
Normal file
58
src/Python/Problem027.py
Normal file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Created on 15 Sep 2019
|
||||
|
||||
@author: David Doblas Jiménez
|
||||
@email: daviddoji@pm.me
|
||||
|
||||
Solution for problem 27 of Project Euler
|
||||
https://projecteuler.net/problem=27
|
||||
"""
|
||||
|
||||
from utils import timeit, is_prime
|
||||
|
||||
|
||||
@timeit("Problem 27")
|
||||
def compute():
|
||||
"""
|
||||
Euler discovered the remarkable quadratic formula:
|
||||
|
||||
n^2 + n + 41
|
||||
|
||||
It turns out that the formula will produce 40 primes for the consecutive
|
||||
integer values 0≤n≤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 0≤n≤79. The product of the coefficients,
|
||||
−79 and 1601, is −126479.
|
||||
|
||||
Considering quadratics of the form:
|
||||
|
||||
n^2 + an + b
|
||||
|
||||
where |a|<1000, |b|≤1000 and |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.
|
||||
"""
|
||||
LIMIT = 1000
|
||||
consecutive_values = 0
|
||||
|
||||
for a in range(-999, LIMIT):
|
||||
for b in range(LIMIT + 1):
|
||||
n = 0
|
||||
while is_prime(abs((n ** 2) + (a * n) + b)):
|
||||
n += 1
|
||||
if n > consecutive_values:
|
||||
consecutive_values = n
|
||||
c = a * b
|
||||
return c
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
print(f"Result for Problem 27: {compute()}")
|
Loading…
x
Reference in New Issue
Block a user