Projekt Euler # 8 "Maximales Produkt in Anzahl Zeichenfolge" in Python

Problem 8 "Maximales Produkt in Zahlenfolge"

Nehmen Sie 13 aufeinanderfolgende Zahlen aus den folgenden 1000-stelligen Zahlen und berechnen Sie deren Produkt. Was ist der Wert des größten dieser Produkte?

(* Werte werden weggelassen, weil sie im Programm beschrieben sind)

Für die 6-stellige EX-Nummer 123789 gibt es zwei Möglichkeiten: 1 * 2 * 3 * 7 * 8 und 2 * 3 * 7 * 8 * 9, und die letztere 2 * 3 * 7 * 8 * 9 = 3024 ist das maximale Produkt. Wird sein.

Python


n = 13

text = """
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450
"""[1:-1]

bignum_str = reduce(lambda x,y: x+y, text.split("\n"))

max_prod = 0
max_num_str = ""
for i in range(len(bignum_str)):
  num_str = bignum_str[i:i+n]
  if(len(num_str) == n):
    prod = reduce(lambda x,y: int(x)*int(y), num_str)
    if(prod > max_prod):
      max_prod = prod
      max_num_str = num_str

result = max_prod
print result
print result == 23514624000
print max_num_str

Ergebnis


23514624000
True
5576689664895

Recommended Posts

Projekt Euler # 8 "Maximales Produkt in Anzahl Zeichenfolge" in Python
Projekt Euler # 11 "Maximales Produkt im Raster" in Python
Projekt Euler 11 "Maximales Produkt im Raster"
Projekt Euler # 4 "Maximale Kalligraphie" in Python
Projekt Euler # 3 "Maximale Primfaktoren" in Python
Projekt Euler # 7 "1000 1. Primzahl" in Python
Projekt Euler # 17 "Anzahl der Zeichen" in Python
Projekt Euler # 12 "Hochangepasste Dreiecke" in Python
Funktionsprogrammierung in Python Project Euler 1
[Hinweis] Project Euler in Python (Problem 1-22)
Funktionale Programmierung in Python Project Euler 3
Projekt Euler # 5 "Minimum Multiple" in Python
Funktionsprogrammierung in Python Project Euler 2
Projekt Euler # 15 "Gitterpfad" 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
Projekt Euler # 2 "Gerade Fibonacci-Zahl" in Python
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
String-Manipulation in Python
Projekt Euler # 10 "Summe der Primzahlen" in Python
Projekt Euler # 13 "Summe großer Zahlen" in Python
Projekt Euler # 6 "Differenz in der Summe der Quadrate" in Python
Primzahl 2 in Python
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
String-Objektmethoden in Python
Datumsmanipulation von Strings in Python
Maximale Anzahl von Zeichen im Python3-Shell-Aufruf (pro Betriebssystem)
Zahlenerkennung in Bildern mit Python
Unendlicher Primgenerator in Python3
Erstellen Sie eine Python-Projektdokumentation in Sphinx
Gesamtleistung in Python (mit Funktools)
6 Möglichkeiten zum Stringen von Objekten in Python
Studiere, nummeriere das Spiel mit Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Konvertierung der Zeichenfolge <-> Datum (Datum, Datum / Uhrzeit) in Python
Projekt Euler 37
Projekt Euler 7
Projekt Euler 47
Projekt Euler 31
Projekt Euler 4
Projekt Euler 38
Projekt Euler 17
Führen Sie eine nicht rekursive Euler-Tour in Python durch
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