Beispiel #1
0
def pandigital_products():
    res = set()
    for product in range(1, int(sqrt(123456789))):
        for multiplicand in range(2, int(sqrt(product))):
            if product % multiplicand == 0:
                pandigital_candidate = int(str(product) + str(multiplicand) + str(product / multiplicand))
                if is_pandigital(pandigital_candidate, 1, 9):
                    res |= {product}
    return res
def pandigital_multiples():
    for n in range(2, 10):
        for i in range(1, pow(10, int(floor(9.0 / n)))):
            pandigit_sum = int(reduce(lambda x, y: x + y, [str(i * j) for j in range(1, n + 1)]))
            if is_pandigital(pandigit_sum, 1, 9):
                yield (pandigit_sum, i, n)