




def  snake_case(    __magic_name__			,		__magic_name__			)			->							Any:





     '''simple docstring'''


     while b:
          lowercase      ,	lowercase :       Optional[int]       =			b, a % b
     return a






def  snake_case(    __magic_name__			,		__magic_name__			)			->							Dict:





     '''simple docstring'''


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






def  snake_case(    )			->							int:





     '''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()





def  snake_case(    __magic_name__			,		__magic_name__   )			->							bool:





     '''simple docstring'''


     lowercase :       List[Any]       =			len(__magic_name__   )
     lowercase :       str       =			[[False] * (required_sum + 1) for _ in range(arr_len + 1   )]

     # for each arr value, a sum of zero(0) can be formed by not taking any element
     # hence True/1
     for i in range(arr_len + 1   ):
          lowercase :       List[str]       =			True

     # sum is not zero and set is empty then false
     for i in range(1			,		required_sum + 1   ):
          lowercase :       str       =			False

     for i in range(1			,		arr_len + 1   ):
          for j in range(1			,		required_sum + 1   ):
               if arr[i - 1] > j:
                    lowercase :       Optional[Any]       =			subset[i - 1][j]
               if arr[i - 1] <= j:
                    lowercase :       Dict       =			subset[i - 1][j] or subset[i - 1][j - arr[i - 1]]

     return subset[arr_len][required_sum]


if __name__ == "__main__":
 import doctest

 doctest.testmod()