Adopted new convention from template

This commit is contained in:
David Doblas Jiménez 2022-09-28 20:33:51 +02:00
parent 6c6f2a2b4f
commit 273aeea7f8

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3 #!/usr/bin/env python
""" """
Created on 15 Sep 2019 Created on 15 Sep 2019
@ -9,7 +9,7 @@ Solution for problem 27 of Project Euler
https://projecteuler.net/problem=27 https://projecteuler.net/problem=27
""" """
from utils import timeit, is_prime from utils import is_prime, timeit
@timeit("Problem 27") @timeit("Problem 27")
@ -24,35 +24,36 @@ def compute():
divisible by 41, and certainly when n=41,41^2+41+41 is clearly divisible divisible by 41, and certainly when n=41,41^2+41+41 is clearly divisible
by 41. by 41.
The incredible formula n^279n+1601 was discovered, which produces 80 The incredible formula n^2-79n+1601 was discovered, which produces 80
primes for the consecutive values 0n79. The product of the coefficients, primes for the consecutive values 0n79. The product of the coefficients,
79 and 1601, is 126479. -79 and 1601, is -126479.
Considering quadratics of the form: Considering quadratics of the form:
n^2 + an + b n^2 + an + b
where |a|<1000, |b|1000 and |n| is the modulus/absolute value of n where |a|<1000, |b|1000 and |n| is the modulus/absolute value of n
e.g. |11|=11 and |4|=4 e.g. |11|=11 and |-4|=4
Find the product of the coefficients, a and b, for the quadratic expression 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, that produces the maximum number of primes for consecutive values of n,
starting with n=0. starting with n=0.
""" """
LIMIT = 1000
limit = 1000
consecutive_values = 0 consecutive_values = 0
for a in range(-999, LIMIT): for a in range(-999, limit):
for b in range(LIMIT + 1): for b in range(limit + 1):
n = 0 n = 0
while is_prime(abs((n ** 2) + (a * n) + b)): while is_prime(abs((n**2) + (a * n) + b)):
n += 1 n += 1
if n > consecutive_values: if n > consecutive_values:
consecutive_values = n consecutive_values = n
c = a * b ans = a * b
return c
return ans
if __name__ == "__main__": if __name__ == "__main__":
print(f"Result for Problem 27 is {compute()}")
print(f"Result for Problem 27: {compute()}")