def desc_digit(num):
num_str = str(num)
while not len(num_str) == 4:
num_str = '0' + num_str
num_list = list(num_str)
output = ''
while len(num_list) > 0:
output += max(num_list)
num_list.remove(max(num_list))
return int(output)
def largest_digit(num):
num_str = str(num)
return int(max(list(num_str)))
def asc_digit(num):
num_str = str(num)
while not len(num_str) == 4:
num_str += '0'
num_list = list(num_str)
output = ''
while len(num_list) > 0:
output += min(num_list)
num_list.remove(min(num_list))
return int(output)
def kaprekar(num):
assert len(str(num)) < 5, 'Please enter a number 4 digits or lower.'
output = str(num) + ' -> '
count = 0
while not num == 6174:
num = desc_digit(num) - asc_digit(num)
count += 1
return print(output + str(count))
input = [6589, 5455, 6174]
for i in input:
kaprekar(i)
ZGVmIGRlc2NfZGlnaXQobnVtKToKICAgIG51bV9zdHIgPSBzdHIobnVtKQogICAgd2hpbGUgbm90IGxlbihudW1fc3RyKSA9PSA0OgogICAgICAgIG51bV9zdHIgPSAnMCcgKyBudW1fc3RyCiAgICBudW1fbGlzdCA9IGxpc3QobnVtX3N0cikKICAgIG91dHB1dCA9ICcnCiAgICB3aGlsZSBsZW4obnVtX2xpc3QpID4gMDoKICAgICAgICBvdXRwdXQgKz0gbWF4KG51bV9saXN0KQogICAgICAgIG51bV9saXN0LnJlbW92ZShtYXgobnVtX2xpc3QpKQogICAgcmV0dXJuIGludChvdXRwdXQpCgoKZGVmIGxhcmdlc3RfZGlnaXQobnVtKToKICAgIG51bV9zdHIgPSBzdHIobnVtKQogICAgcmV0dXJuIGludChtYXgobGlzdChudW1fc3RyKSkpCgoKZGVmIGFzY19kaWdpdChudW0pOgogICAgbnVtX3N0ciA9IHN0cihudW0pCiAgICB3aGlsZSBub3QgbGVuKG51bV9zdHIpID09IDQ6CiAgICAgICAgbnVtX3N0ciArPSAnMCcKICAgIG51bV9saXN0ID0gbGlzdChudW1fc3RyKQogICAgb3V0cHV0ID0gJycKICAgIHdoaWxlIGxlbihudW1fbGlzdCkgPiAwOgogICAgICAgIG91dHB1dCArPSBtaW4obnVtX2xpc3QpCiAgICAgICAgbnVtX2xpc3QucmVtb3ZlKG1pbihudW1fbGlzdCkpCiAgICByZXR1cm4gaW50KG91dHB1dCkKCgpkZWYga2FwcmVrYXIobnVtKToKICAgIGFzc2VydCBsZW4oc3RyKG51bSkpIDwgNSwgJ1BsZWFzZSBlbnRlciBhIG51bWJlciA0IGRpZ2l0cyBvciBsb3dlci4nCiAgICBvdXRwdXQgPSBzdHIobnVtKSArICcgLT4gJwogICAgY291bnQgPSAwCiAgICB3aGlsZSBub3QgbnVtID09IDYxNzQ6CiAgICAgICAgbnVtID0gZGVzY19kaWdpdChudW0pIC0gYXNjX2RpZ2l0KG51bSkKICAgICAgICBjb3VudCArPSAxCiAgICByZXR1cm4gcHJpbnQob3V0cHV0ICsgc3RyKGNvdW50KSkKCgppbnB1dCA9IFs2NTg5LCA1NDU1LCA2MTc0XQpmb3IgaSBpbiBpbnB1dDoKICAgIGthcHJla2FyKGkp