fork download
  1. def largest_digit(number):
  2. return int(max(str(check_num(number))))
  3.  
  4. def desc_digits(number):
  5. return int(''.join(sorted(str(check_num(number)))[::-1]))
  6.  
  7. def asc_digits(number):
  8. return int(''.join(sorted(str(check_num(number)))))
  9.  
  10. def kaprekar(number, counter=0):
  11. if number == 6174:
  12. return counter
  13. number = desc_digits(number) - asc_digits(number)
  14. return counter + 1 if number == 6174 else kaprekar(number, counter + 1)
  15.  
  16. def check_num(number):
  17. if len(str(number)) > 4:
  18. raise SystemExit('You have passed a number with more than 4 digits, and a kidney stone.')
  19. while len(str(number)) < 4:
  20. number = '0' + str(number)
  21. return number
  22.  
  23. print("Challenge Group")
  24. for ii in [1234, 3253, 9800, 3333, 120]:
  25. print(largest_digit(ii))
  26. print("\nBonus 1 Group")
  27. for ii in [1234, 3253, 9800, 3333, 120]:
  28. print(desc_digits(ii))
  29. print("\nBonus 2 Group")
  30. for ii in [6589, 5455, 6174]:
  31. print(kaprekar(ii))
Success #stdin #stdout 0.02s 9992KB
stdin
Standard input is empty
stdout
Challenge Group
4
5
9
3
2

Bonus 1 Group
4321
5332
9800
3333
2100

Bonus 2 Group
2
5
0