Problem 33

where i left off.
綺麗なことはどうでもいいんです!

def gcd(m,n):
    if n > m:
        k = m
        m = n
        n = k
    if n == 1:return m
    if not m % n:return n
    return gcd(n,m%n)
    
def mul(lis):
    return eval('*'.join(map(str,lis)))

def remove(a,b):
    if a==b:return False
    p = set(str(a))
    q = set(str(b))
    if len(p) == 1 or len(q) == 1:return False
    t = p.intersection(q)
    if not t or len(t) > 1 or '0' in t:return False
    t = list(t)[0]    
    a = str(a).replace(t,'')    
    b = str(b).replace(t,'')
    if '0' == a or '0' == b:return False
    return (a,b)

x,y =zip(*[(a,b) for a in xrange(10,100) for b in xrange(a+1,100) 
if remove(a,b) and float(a)/float(b) == float(remove(a,b)[0]) / float(remove(a,b)[1])])

print mul(y)/gcd(mul(x),mul(y))

zipが熱い!と今まで使わなったのはなぜだろうwww.
mulとか定義してみたよ!gcdは何となく使ったよw普通に割り切れるから入らないんだけどね!