@@ -2,7 +2,7 @@ def kaprekar_routine(number: int) -> int:
22 """
33 Taking 4-digit numbers and finding how many steps to reach Kaprekar constant (6174) bro.
44 More info link for the bots bro: https://wikipedia.org
5-
5+
66 Keeping these here for the automatic test bots, don't mind me:
77 >>> kaprekar_routine(3524)
88 3
@@ -12,10 +12,12 @@ def kaprekar_routine(number: int) -> int:
1212 # Checking if the number is 4 digits, throwing an error if not bro
1313 if not (1000 <= number <= 9999 ):
1414 raise ValueError ("The number must be 4 digits bro!" )
15-
15+
1616 # If someone enters all same digits like 1111, loop breaks. Blocking it here
1717 if len (set (str (number ))) < 2 :
18- raise ValueError ("Digits cannot be all the same bro, make at least two different!" )
18+ raise ValueError (
19+ "Digits cannot be all the same bro, make at least two different!"
20+ )
1921
2022 kaprekar_target = 6174
2123 steps = 0
@@ -24,13 +26,13 @@ def kaprekar_routine(number: int) -> int:
2426 while number != kaprekar_target :
2527 # Padding the number to 4 digits and making it a string bro
2628 digits = f"{ number :04d} "
27-
29+
2830 # Sorting digits from biggest to smallest and joining them
2931 descending = int ("" .join (sorted (digits , reverse = True )))
30-
32+
3133 # Sorting digits from smallest to biggest and joining them
3234 ascending = int ("" .join (sorted (digits )))
33-
35+
3436 # Subtracting smallest from biggest, finding new number and increasing steps bro
3537 number = descending - ascending
3638 steps += 1
@@ -41,10 +43,12 @@ def kaprekar_routine(number: int) -> int:
4143
4244 return steps
4345
46+
4447if __name__ == "__main__" :
4548 import doctest
46- # Running the test engine that the bots are checking
49+
50+ # Running the test engine that the bots are checking
4751 doctest .testmod ()
48-
52+
4953 # Just a small example here to test it for myself
5054 print (f"Our number locked in exactly { kaprekar_routine (3524 )} steps bro!" )
0 commit comments