[PYTHON] Projekt Euler 50

Problem

Die Primzahl 41 kann als die Summe von sechs aufeinanderfolgenden Primzahlen ausgedrückt werden:

41 = 2 + 3 + 5 + 7 + 11 + 13.

Dies ist die längste Zeit, wenn eine Primzahl unter 100 durch die Summe aufeinanderfolgender Primzahlen dargestellt wird.

Wenn die Summe aufeinanderfolgender Primzahlen eine Primzahl kleiner als 1000 darstellt, ist die längste 953 mit 21 Termen.

Welche Primzahl ist die längste, wenn eine Primzahl von weniger als 1 Million als Summe aufeinanderfolgender Primzahlen ausgedrückt wird?

Antworten

Ich habe es wie folgt gelöst.

  1. Erstellen Sie eine Liste der Primzahlen "pri ['list']"
  2. Bestimmen Sie die Primzahl "pri ['list'] [i]" eines bestimmten Startpunkts.
  3. Erstellen Sie die Summe s nach der Primzahl des Startpunktes im Bereich unterhalb des Maximalwertes MAX. Zu diesem Zeitpunkt wird die Anzahl aufeinanderfolgender Primzahlen als c gezählt.
  4. Wenn s eine Primzahl ist und c größer als c_max ist, sei s ans und c_max c.
  5. Wiederholen Sie die Schritte 2 und 4 und geben Sie die endgültig erhaltenen Antworten aus.
import mymath

def main():
  MAX = 10**6
  pri = mymath.get_primes(MAX)
  pri_length = len(pri['list'])
  i, c_max, ans = 0, 0, 0
  while i < pri_length:
    s, j, c = pri['list'][i], i + 1, 1
    while j < pri_length and s + pri['list'][j]< MAX:
      s += pri['list'][j]
      c += 1
      if pri['bool'][s] and c_max < c:
        ans, c_max = s, c
      j += 1
    i += 1
  print ans
  
main()

Recommended Posts

Projekt Euler 37
Projekt Euler 7
Projekt Euler 47
Projekt Euler 31
Projekt Euler 4
Projekt Euler 38
Projekt Euler 17
Projekt Euler 26
Projekt Euler 8
Projekt Euler 23
Projekt Euler 22
Projekt Euler 19
Projekt Euler 50
Projekt Euler 42
Projekt Euler 33
Projekt Euler 32
Projekt Euler 43
Projekt Euler 35
Projekt Euler 36
Projekt Euler 24
Projekt Euler 46
Projekt Euler 48
Projekt Euler 45
Projekt Euler 6
Projekt Euler 44
Projekt Euler 39
Projekt Euler 40
Projekt Euler 49
Projekt Euler 29
Projekt Euler 27
Projekt Euler 41
Projekt Euler 18
Projekt Euler 13
Projekt Euler 30
Projekt Euler 16
Projekt Euler 14
Projekt Euler 34
Projekt Euler 25
[Project Euler] Problem1
Projekt Euler15 "Gitterpfad"
Projekt Euler 2 Beschleunigung 2.21 Mikrosekunden speichern.
Projekt Euler Ursprüngliche Methodengruppe 1
Was ist Project Euler 3-Beschleunigung?
Funktionsprogrammierung in Python Project Euler 1
Projekt Euler 10 "Summe der Primzahlen"
[Hinweis] Project Euler in Python (Problem 1-22)
Funktionale Programmierung in Python Project Euler 3
Project Euler 4 Versuch zu beschleunigen
Funktionsprogrammierung in Python Project Euler 2
Projekt Euler 11 "Maximales Produkt im Raster"
Projekt Euler # 15 "Gitterpfad" in Python
Projekt Euler # 4 "Maximale Kalligraphie" in Python
Projekt Euler 9 Aufbewahrung der Berechnungsergebnisse
Projekt Euler # 3 "Maximale Primfaktoren" in Python
Projekt Euler # 11 "Maximales Produkt im Raster" in Python
Projekt Euler # 7 "1000 1. Primzahl" in Python
Projekt Euler # 16 "Summe der Kräfte" in Python
Projekt Euler # 9 "Spezielle Pitagolas-Nummer" in Python
Projekt Euler # 14 "Längste Spalte mit Kollatennummern" in Python
Ich habe Project Euler 1 in einem Liner geschrieben.
Projekt Euler # 2 "Gerade Fibonacci-Zahl" in Python