Projet Euler # 8 "Produit maximum en chaîne numérique" en Python

Problème 8 "Produit maximum dans la chaîne numérique"

Prenez 13 numéros consécutifs parmi les 1000 chiffres suivants et calculez leur produit Quelle est la valeur du plus grand de ces produits?

(* Les valeurs sont omises car elles sont décrites dans le programme)

Pour le numéro EX à 6 chiffres 123789, il existe deux façons, 1 * 2 * 3 * 7 * 8 et 2 * 3 * 7 * 8 * 9, et ce dernier 2 * 3 * 7 * 8 * 9 = 3024 est le produit maximum. Sera.

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

résultat


23514624000
True
5576689664895

Recommended Posts

Projet Euler # 8 "Produit maximum en chaîne numérique" en Python
Projet Euler # 11 "Produit maximum dans la grille" en Python
Projet Euler 11 "Produit maximum dans la grille"
Projet Euler # 4 "Calligraphie maximum" en Python
Projet Euler # 3 "Maximum Prime Factors" en Python
Projet Euler # 7 "1000 1er nombre premier" en Python
Projet Euler # 17 "Nombre de caractères" en Python
Projet Euler n ° 12 "Triangles hautement ajustés" en Python
Programmation fonctionnelle dans Python Project Euler 1
[Note] Projet Euler en Python (problème 1-22)
Programmation fonctionnelle dans Python Project Euler 3
Projet Euler # 5 "Minimum Multiple" en Python
Programmation fonctionnelle dans Python Project Euler 2
Projet Euler # 15 "Lattice Path" en Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Projet Euler # 9 "Numéro spécial Pitagolas" en Python
Projet Euler # 14 "Colonne de nombre de collats la plus longue" en Python
Projet Euler # 2 "Even Fibonacci Number" en Python
Projet Euler # 1 "Multiple de 3 et 5" en Python
Manipulation de chaîne en python
Projet Euler # 10 "somme des nombres premiers" en Python
Projet Euler # 13 "Somme des grands nombres" en Python
Projet Euler # 6 "Différence de somme des carrés" en Python
Premier nombre 2 en Python
Vérifiez si la chaîne est un nombre en python
Méthodes d'objet chaîne en Python
Manipulation de la date des chaînes en Python
Nombre maximum de caractères dans l'appel shell Python3 (par OS)
Reconnaissance des nombres dans les images avec Python
Générateur principal infini en Python3
Créer une documentation de projet Python dans Sphinx
Puissance totale en Python (en utilisant functools)
6 façons d'enchaîner des objets en Python
Etude, jeu de numérotation avec Python
Créer une chaîne aléatoire en Python
Conversion de la chaîne <-> date (date, datetime) en Python
Projet Euler 37
Projet Euler 7
Projet Euler 47
Projet Euler 31
Projet Euler 4
Projet Euler 38
Projet Euler 17
Faites une visite Euler non récursive en Python
Projet Euler 26
Projet Euler 8
Projet Euler 23
Projet Euler 22
Projet Euler 19
Projet Euler 50
Projet Euler 42
Projet Euler 33
Projet Euler 32
Projet Euler 43
Projet Euler 35
Projet Euler 36
Projet Euler 24
Projet Euler 46
Projet Euler 48
Projet Euler 45
Projet Euler 6