from __future__ import annotations

class       snake_case					:




  def __init__(      self     :	Any     , a_     :	int				)->       None:




       """simple docstring"""
       SCREAMING_SNAKE_CASE__				:				List[Any]			=		data
       SCREAMING_SNAKE_CASE__				:				Node | None			=		None
       SCREAMING_SNAKE_CASE__				:				Node | None			=		None







def     _a				(      lowercase__  :			Node | None ):  # In Order traversal of the tree







     '''simple docstring'''


     if tree:
          display(tree.left )
          print(tree.data )
          display(tree.right )







def     _a				(      lowercase__  :			Node | None ):







     '''simple docstring'''


     return 1 + max(depth_of_tree(tree.left )     ,  depth_of_tree(tree.right ) ) if tree else 0







def     _a				(      lowercase__  :			Node ):







     '''simple docstring'''


     if not tree:
          return True
     if tree.left and tree.right:
          return is_full_binary_tree(tree.left ) and is_full_binary_tree(tree.right )
     else:
          return not tree.left and not tree.right







def     _a				(      ):  # Main function for testing.







     '''simple docstring'''


     SCREAMING_SNAKE_CASE__				:				int			=		Node(1 )
     SCREAMING_SNAKE_CASE__				:				Any			=		Node(2 )
     SCREAMING_SNAKE_CASE__				:				str			=		Node(3 )
     SCREAMING_SNAKE_CASE__				:				int			=		Node(4 )
     SCREAMING_SNAKE_CASE__				:				Optional[int]			=		Node(5 )
     SCREAMING_SNAKE_CASE__				:				Union[str, Any]			=		Node(6 )
     SCREAMING_SNAKE_CASE__				:				Dict			=		Node(7 )
     SCREAMING_SNAKE_CASE__				:				List[str]			=		Node(8 )
     SCREAMING_SNAKE_CASE__				:				int			=		Node(9 )

     print(is_full_binary_tree(lowercase__ ) )
     print(depth_of_tree(lowercase__ ) )
     print('Tree is: ' )
     display(lowercase__ )


if __name__ == "__main__":
      main()




import math







def     _a				(      lowercase__  :			int ):







     '''simple docstring'''


     assert isinstance(lowercase__     ,  lowercase__ ) and (
         number >= 0
     ), "'number' must been an int and positive"

     if 1 < number < 4:
          # 2 and 3 are primes
          return True
     elif number < 2 or not number % 2:
          # Negatives, 0, 1 and all even numbers are not primes
          return False

     SCREAMING_SNAKE_CASE__				:				Tuple			=		range(3     ,  int(math.sqrt(lowercase__ ) + 1 )     ,  2 )
     return not any(not number % i for i in odd_numbers )







def     _a				(      lowercase__  :			List[str]     ,  lowercase__  :			Any=1     ,  **lowercase__  :			Any ):







     '''simple docstring'''


     SCREAMING_SNAKE_CASE__				:				int			=		factor * value
     SCREAMING_SNAKE_CASE__				:				Dict			=		value

     while not is_prime(lowercase__ ):
          value += 1 if not ("desc" in kwargs and kwargs["desc"] is True) else -1

     if value == first_value_val:
          return next_prime(value + 1     ,  **lowercase__ )
     return value



