Euler conçoit l'équation quadratique suivante:
n**2 + n + 41
.
Cette formule produit 40 nombres premiers lorsque n est un entier continu de 0 à 39. Cependant, lorsque n = 40, «40 ** 2 + 40 + 41» = «40 (40 + 1). ) + 41 », qui est divisible par 41. De plus, lorsque n = 41, c'est« 41 ** 2 + 41 + 41 », ce qui est clairement divisible par 41.
En utilisant un ordinateur, nous avons trouvé l'équation quadratique «n ** 2-79 * n + 1601.» Elle produit 80 nombres premiers avec des entiers consécutifs de n = 0 à 79. Produit de coefficients. Est -79 x 1601 et -126479.
Maintenant, |a| < 1000, |b| <Considérez l'équation quadratique suivante comme 1000(ici|a|Est la valeur absolue):Par exemple|11| = 11 |-4| =4.
n**2 + a*n + b
Répondez au produit des coefficients a et b dans l'équation quadratique ci-dessus, qui a la plus grande longueur lorsqu'un nombre premier est généré avec des entiers consécutifs commençant à n = 0.
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2027
Recherche en texte intégral comme indiqué. Probablement pas bon. Cliquez ici pour mymath http://qiita.com/cof/items/45d3823c3d71e7e22920
import mymath
def f(n,a,b):
return n**2 + a * n + b
def cof():
P_MAX = 10 ** 6
pri = mymath.get_primes(P_MAX)
max_n = 0
ans = 0
seq = range(-1000,1001)
for a in seq:
for b in seq:
n = 0
while pri['bool'][f(n,a,b)]:
n += 1
if n > max_n:
max_n = n
ans = a*b
print ans
Il est tard, comme une montagne.
Recommended Posts