#!/usr/bin/env python # coding: utf-8 # # [Project Euler](https://ProjectEuler.net) # [This Python 3 notebook](Project%20Euler%20%28Python%203%29.ipynb) contains *some* solutions for the [Project Euler](https://ProjectEuler.net) challenge. # # ### /!\ **Warning:** do not spoil yourself the pleasure of solving these problems by yourself! # # [I (Lilian Besson)](http://perso.crans.org/besson/) started in February 2015, and worked occasionally on Project Euler problems in March and April 2015. # I should try to work on it again, hence this notebook... # # ![Badge giving the number of solved problems](https://ProjectEuler.net/profile/Naereen.png "Badge giving the number of solved problems") # ---- # # ## Problem 32 : Pandigital products # *Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.* # In[6]: maxN = 987654321 maxN = 654321 # XXX Passer à la vraie valeur l = len(str(maxN)) sum32 = 0 digits19 = set(range(1, l+1)) for multiplicand in range(1, 1+maxN): # upto 987 654 321 multiplier = 1 product = multiplicand * multiplier while multiplier <= maxN and product <= maxN: # Be smart here! digits = str(multiplicand)+str(multiplier)+str(product) if len(digits) == l and set(digits) == digits19: print("multiplicand = {}, multiplier = {}, product = {}".format(multiplicand, multiplier, product)) print("digits =", digits) sum32 += product multiplier += 1 product = multiplicand * multiplier print("The sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through", l, "pandigital is") print(sum32) # In[ ]: