四位数黑洞问题
num = sys.argv[1]def test(num): num = str(num) x = [] for k in num: if int(k) not in x: x.append(int(k)) for i in range(4-len(x)): x.append(0) x.sort() minNum = x[0]*1000+x[1]*100+x[2]*10+x[3] x.reverse() maxNum = x[0]*1000+x[1]*100+x[2]*10+x[3] if (maxNum-minNum)==6174: print "max:%d-min:%d=%d"%(maxNum,minNum,maxNum-minNum) return else: test(maxNum-minNum) print "max:%d-min:%d=%d"%(maxNum,minNum,maxNum-minNum)test(num)
任意不同四个自然数组成的整数的最大值减去最小值得结果按照上述重复计算,必然会得到一个6174的结果