Project Euler # 8 "Maximum Product in Number String" in Python

Problem 8 "Maximum product in number string"

Take 13 consecutive numbers from the following 1000 digits and calculate their product. What is the value of the largest of such products?

(* Numerical values are omitted because they are described in the program)

For EX 6-digit number 123789, there are two ways, 1 * 2 * 3 * 7 * 8 and 2 * 3 * 7 * 8 * 9, and the latter 2 * 3 * 7 * 8 * 9 = 3024 is the maximum product. Will be.

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

result


23514624000
True
5576689664895

Recommended Posts

Project Euler # 8 "Maximum Product in Number String" in Python
Project Euler # 11 "Maximum Product in Grid" in Python
Project Euler 11 "Maximum product in grid"
Project Euler # 4 "Maximum Palindrome" in Python
Project Euler # 3 "Maximum Prime Factors" in Python
Project Euler # 7 "1000 1st prime number" in Python
Project Euler # 17 "Number of Characters" in Python
Project Euler # 12 "High Divisibility Triangular Number" in Python
Functional programming in Python Project Euler 1
[Note] Project Euler in Python (Problem 1-22)
Functional programming in Python Project Euler 3
Project Euler # 5 "Minimum Multiples" in Python
Functional programming in Python Project Euler 2
Project Euler # 15 "Lattice Path" in Python
Project Euler # 16 "Sum of Powers" in Python
Project Euler # 9 "Special Pythagorean Triple" in Python
Project Euler # 14 "Longest Collatz Sequence" in Python
Project Euler # 2 "Even Fibonacci Numbers" in Python
Project Euler # 1 "Multiples of 3 and 5" in Python
String manipulation in python
Project Euler # 10 "sum of prime numbers" in Python
Project Euler # 13 "Sum of Large Numbers" in Python
Project Euler # 6 "Difference in sum of squares" in Python
Prime number 2 in Python
Check if the string is a number in python
String object methods in Python
String date manipulation in Python
Maximum number of characters in Python3 shell call (per OS)
Number recognition in images with Python
Infinite prime number generator in Python3
Create Python project documentation in Sphinx
Infinite product in Python (using functools)
6 ways to string objects in Python
Study, number guessing game in Python
Create a random string in Python
Conversion of string <-> date (date, datetime) in Python
Project Euler 37
Project Euler 7
Project Euler 47
Project Euler 31
Project Euler 4
Project Euler 38
Project Euler 17
Do a non-recursive Euler Tour in Python
Project Euler 26
Project Euler 8
Project Euler 23
Project Euler 22
Project Euler 19
Project Euler 50
Project Euler 42
Project Euler 33
Project Euler 32
Project Euler 43
Project Euler 35
Project Euler 36
Project Euler 24
Project Euler 46
Project Euler 48
Project Euler 45
Project Euler 6