def hanoi(n, source, auxiliary, target): # Example usage: # hanoi(3, 'A', 'B', 'C') if n < 1: print(f"No disks, nothing to do") return if n == 1: print(f"Move disk 1 from {source} to {target}") return # Move n-1 disks from source to auxiliary, so they are out of the way hanoi(n - 1, source, target, auxiliary) # Move the nth disk from source to target print(f"Move disk {n} from {source} to {target}") # Move the n-1 disks that we left on auxiliary to target hanoi(n - 1, auxiliary, source, target) def get_hanoi_input(): # Returns a positive integer, otherwise throws an exception while True: user_input = input("Please enter an integer: ") try: user_integer = int(user_input) return user_integer except ValueError: print("That's not a valid integer. Please try again.") if __name__== "__main__": # Call the new function to get the input user_integer = get_hanoi_input() # Now call hanoi with the obtained integer hanoi(user_integer, 'A', 'B', 'C')