def fingPandigitalProdcuts(): pandigitalProducts = {0} # we are using a set because we want to avoid adding duplicate pandigital products. # 2 digit multiplicands are multiplied with 3-digit multipliers for multiplicand in range(12,99): for multiplier in range(102, 988): product = multiplicand * multiplier # compute product multiplicand_nultiplier_product = int(str(multiplicand) + str(multiplier) + str(product)) # form a single identity using the multiplicand, multiplier and product if (Common.isPandigital(multiplicand_nultiplier_product)): # check if the identity is pandigital pandigitalProducts.add(product) # add product to the set of pandigital products. # 1 digit multiplicands are multiplied with 4-digit multipliers for multiplicand in range(1,10): for multiplier in range(1002, 9877): product = multiplicand * multiplier # compute product multiplicand_nultiplier_product = int(str(multiplicand) + str(multiplier) + str(product)) # form a single identity using the multiplicand, multiplier and product if (Common.isPandigital(multiplicand_nultiplier_product)): # check if the identity is pandigital pandigitalProducts.add(product) # add product to the set of pandigital products. return sum(pandigitalProducts)
def ceatePotentialPandigitalProducts(range_of_numbers, result): for integer in range_of_numbers: prod = 1 x = "" for n in range(1,10): prod = integer * n x = x + str(prod) if (len(x) >= 9): if ( int(x) < 987654321 and int(x) > result and Common.isPandigital(int(x))): result = int(x) a = integer b = n return result