




def 				lowerCAmelCase_	(     snake_case_     ):
      if not isinstance(snake_case_,snake_case_     ):
            _A							:     Tuple			=						f'''Input value of [number={number}] must be an integer'''
            raise TypeError(snake_case_     )
      if number < 0:
            return False
      _A							:     Union[str, Any]			=						number * number
      while number > 0:
            if number % 10 != number_square % 10:
                  return False
            number //= 10
            number_square //= 10
      return True


if __name__ == "__main__":
  import doctest

  doctest.testmod()







def 				lowerCAmelCase_	(     snake_case_,snake_case_     ):
      while b:
            _A			,   _A							:     List[str]			=						b, a % b
      return a







def 				lowerCAmelCase_	(     snake_case_,snake_case_     ):
      return a if b == 0 else euclidean_gcd_recursive(snake_case_,a % b     )







def 				lowerCAmelCase_	(     ):
      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()

