Beispiel #1
0
def pe_problem52():
    print "Starting"
    for i in range(1,1000000):

        d = pe_utils.extractDigits(i)
        d.sort()
        ok = True

        for j in range(2,7):
            e = pe_utils.extractDigits(j*i)
            e.sort()
            if d != e:
                ok = False
                break
        if ok:
            print "Result: " + str(i)
            break

    print "Done"
Beispiel #2
0
import pe_utils

def digitAt(number, at) :
    if at == 1  : return number % 10
    return digitAt(number/10,at-1)

    
products = []
max = 2000L

for i in range(1,max) :
    for j in range(1,500) :
        x = i * j
        t = []
        for k in [i, j, x] :
            t.extend(pe_utils.extractDigits(k))
        if pe_utils.isPandigital(t) :
            print "i: " + str(i) + ", j: " + str(j) + ", i*j: " + str(x)
            products.append(x)

print products
uniq = set(products)
print uniq
val = 0L
for x in uniq :
    val += x

print "Total: " + str(val)

for i in range(1,8) :
    assert 8-i == digitAt(1234567, i)