The four adjacent digits in the 1000-digit number that have the greatest product are 9\times9\times8\times9=5932.
7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450
Find the thirteen adjacent digits in the 1000-digit number that have the greatest product. What is the value of this product?
https://projecteuler.net/problem=8
Gee whiz! That’s one large number. The problem is asking for the largest product of 13 consecutive digits. Essentially, we slide a window that’s 13 digits wide across this behemoth. For each “view”, we calculate the product and check against the largest product so far. If the new view’s product is larger, we then replace the old largest product with the new product.
huge_number = 7316717653133062491922... # The rest is redacted to save space huge_string = str(huge_number) # Makes window-sliding a lot easier if we can index digits directly window_width = 13 stop_index = len(huge_string) - window_width product = 1 for i in range(0, stop_index): window = huge_string[i:i+window_width] if '0' in window: continue else: new_product = 1 for digit in window: new_product *= int(digit) if new_product > product: product = new_product print(product)
Letting this script loose on the humongous number gives the answer: 23514624000.