Euler entwickelt die folgende quadratische Gleichung:
n**2 + n + 41
.
Diese Gleichung erzeugt 40 Primzahlen, wenn n eine stetige ganze Zahl von 0 bis 39 ist. Wenn jedoch n = 40 ist, ist 40 ** 2 + 40 + 41
= 40 (40 + 1). ) + 41
, was durch 41 teilbar ist. Wenn n = 41 ist, ist es auch 41 ** 2 + 41 + 41
, was eindeutig durch 41 teilbar ist.
Unter Verwendung eines Computers haben wir die quadratische Gleichung "n ** 2-79 * n + 1601" gefunden. Sie erzeugt 80 Primzahlen mit aufeinanderfolgenden ganzen Zahlen von n = 0 bis 79. Das Produkt der Koeffizienten. Ist -79 x 1601 und -126479.
Jetzt, |a| < 1000, |b| <Betrachten Sie die folgende quadratische Gleichung als 1000(Hier|a|Ist der absolute Wert):Zum Beispiel|11| = 11 |-4| =4.
n**2 + a*n + b
Beantworten Sie das Produkt der Koeffizienten a und b in der obigen quadratischen Gleichung, die die längste Länge hat, wenn eine Primzahl mit aufeinanderfolgenden ganzen Zahlen ab n = 0 erzeugt wird.
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2027
Volltextsuche wie gesagt. Wahrscheinlich nicht gut. Klicken Sie hier für 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
Es ist spät wie ein Berg.
Recommended Posts