[ create a new paste ] login | about

Link: http://codepad.org/l15jepbv    [ raw code | output | fork ]

Python, pasted on Jan 19:
from __future__ import generators

def permute(s):
    if len(s) <=1:
        yield s
    else:
        for perm in permute(s[1:]):
            for i in range(len(perm)+1):
                yield perm[:i] + s[0:1] + perm[i:]

def vampirismo(n):
    vampiricos=[]

    if n%2: return 0

    dgs2nr = lambda x: x[0] * 10**(len(x)-1) + dgs2nr(x[1:]) if len(x)>1 else x[0]

    for i in range(10**(n-1),10**n):
        dgs=map(int,list(str(i)))
        nr = dgs2nr(dgs)

        for perm in permute(dgs):
            x=dgs2nr(perm[0:n/2])
            y=dgs2nr(perm[n/2:])

            if x*y==nr:
                vampiricos.append([nr,x,y])
                break

    return vampiricos

print vampirismo(4)


Output:
1
[[1260, 21, 60], [1395, 93, 15], [1435, 41, 35], [1530, 51, 30], [1827, 21, 87], [2187, 81, 27], [6880, 86, 80]]


Create a new paste based on this one


Comments: