Ejemplo n.º 1
0
def find(aLen, bLen):
    cEnd = 9 - aLen - bLen
    aEnd = cEnd + aLen
    for p in itertools.permutations(range(1, 10), aEnd):
        if p[cEnd - 1] == 5 or p[aEnd - 1] in (1, 5):
            continue
        c = makeNum(p, 0, cEnd)
        a = makeNum(p, cEnd, aEnd)
        if c % a:
            continue

        b = c // a
        bdigs = set(range(1, 10)) - set(p)
        good = True
        for d in digits(b):
            if d in bdigs:
                bdigs.remove(d)
            else:
                good = False
                break
        if good and not bdigs:
            print('%d = %d * %d' % (c, a, b))
            results.add(c)
Ejemplo n.º 2
0
Archivo: 32.py Proyecto: nodirt/edu
def find(aLen, bLen):
    cEnd = 9 - aLen - bLen
    aEnd = cEnd + aLen
    for p in itertools.permutations(range(1, 10), aEnd):
        if p[cEnd - 1] == 5 or p[aEnd - 1] in (1, 5):
            continue
        c = makeNum(p, 0, cEnd)
        a = makeNum(p, cEnd, aEnd)
        if c % a:
            continue

        b = c // a
        bdigs = set(range(1, 10)) - set(p)
        good = True
        for d in digits(b):
            if d in bdigs:
                bdigs.remove(d)
            else:
                good = False
                break
        if good and not bdigs:
            print('%d = %d * %d' % (c, a, b))
            results.add(c)
Ejemplo n.º 3
0
Archivo: 34.py Proyecto: nodirt/edu
from math import factorial
from nums import digits

digFac = [factorial(x) for x in range(10)]

result = 0
for x in range(10, 10 ** 6):
    if x == sum(digFac[d] for d in digits(x)):
        print(x)
        result += x

print('Sum:', result)
Ejemplo n.º 4
0
Archivo: 30.py Proyecto: nodirt/edu
from nums import digits

power = 5

result = 0

pdig = [x ** power for x in range(10)]

for x in range(10, 10 ** 7):
    s = 0
    for dig in digits(x):
        s += pdig[dig]
        if s > x:
            break
    if s == x:
        result += x
        print(x)

print("Sum: ", result)
Ejemplo n.º 5
0
from nums import digits

power = 5

result = 0

pdig = [x**power for x in range(10)]

for x in range(10, 10**7):
    s = 0
    for dig in digits(x):
        s += pdig[dig]
        if s > x:
            break
    if s == x:
        result += x
        print(x)

print("Sum: ", result)