



'''simple docstring'''
from __future__ import annotations






class 							lowercase__	:





	def __init__( self					:				Optional[int] ,lowerCamelCase__					:				Union[str, Any]=None ):







							'''simple docstring'''
							_UpperCamelCase					:		Union[str, Any] 				=   data
							_UpperCamelCase					:		Union[str, Any] 				=   None





	def __repr__( self					:				Optional[int] ):







							'''simple docstring'''
							_UpperCamelCase					:		List[Any] 				=   []
							_UpperCamelCase					:		Optional[int] 				=   self
							while temp:
													string_rep.append(F'{temp.data}' )
													_UpperCamelCase					:		int 				=   temp.next
							return "->".join(lowerCamelCase__ )






def A__    (     UpperCAmelCase_							):
						if not elements_list:
												raise Exception('The Elements List is empty'							)

						_UpperCamelCase					:		Dict 				=   Node(elements_list[0]							)
						for i in range(1  ,  len(UpperCAmelCase_							)							):
												_UpperCamelCase					:		Optional[Any] 				=   Node(elements_list[i]							)
												_UpperCamelCase					:		List[Any] 				=   current.next
						return head






def A__    (     UpperCAmelCase_							):
						if head_node is not None and isinstance(UpperCAmelCase_  ,  UpperCAmelCase_							):
												print_reverse(head_node.next							)
												print(head_node.data							)






def A__    (     ):
						from doctest import testmod

						testmod()

						_UpperCamelCase					:		int 				=   make_linked_list([1_4, 5_2, 1_4, 1_2, 4_3]							)
						print('Linked List:'							)
						print(UpperCAmelCase_							)
						print('Elements in Reverse:'							)
						print_reverse(UpperCAmelCase_							)


if __name__ == "__main__":
					main()









"""simple docstring"""





def 			UpperCAmelCase__							(  SCREAMING_SNAKE_CASE     :						int							,						SCREAMING_SNAKE_CASE     :						int			):







      '''simple docstring'''




      while b:
            lowerCAmelCase						,		lowerCAmelCase  						=       b, a % b
      return a


def 			UpperCAmelCase__							(  SCREAMING_SNAKE_CASE     :						int							,						SCREAMING_SNAKE_CASE     :						int			):







      '''simple docstring'''




      return a if b == 0 else euclidean_gcd_recursive(SCREAMING_SNAKE_CASE							,						a % b			)


def 			UpperCAmelCase__							(  ):







      '''simple docstring'''




      print(F'euclidean_gcd(3, 5) = {euclidean_gcd(3							,						5			)}'			)
      print(F'euclidean_gcd(5, 3) = {euclidean_gcd(5							,						3			)}'			)
      print(F'euclidean_gcd(1, 3) = {euclidean_gcd(1							,						3			)}'			)
      print(F'euclidean_gcd(3, 6) = {euclidean_gcd(3							,						6			)}'			)
      print(F'euclidean_gcd(6, 3) = {euclidean_gcd(6							,						3			)}'			)

      print(F'euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3							,						5			)}'			)
      print(F'euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5							,						3			)}'			)
      print(F'euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1							,						3			)}'			)
      print(F'euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3							,						6			)}'			)
      print(F'euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6							,						3			)}'			)


if __name__ == "__main__":
       main()






