




"""simple docstring"""

from maths.prime_factors import prime_factors






def 		_snake_case	(   _snake_case				:   int				)       ->   int:






      '''simple docstring'''


      if not isinstance(_snake_case							,    _snake_case				):
            _A     =  F'''Input value of [number={number}] must be an integer'''
            raise TypeError(_snake_case				)
      if number < 1:
            raise ValueError('Input must be a positive integer'				)
      return -1 if len(prime_factors(_snake_case				)				) % 2 else 1


if __name__ == "__main__":
       import doctest

       doctest.testmod()



def  __snake_case							(	__magic_name__						):







				'''simple docstring'''


				lowercase         =      set()
				# To detect a back edge, keep track of vertices currently in the recursion stack
				lowercase         =      set()
				return any(
				    node not in visited and depth_first_search(__magic_name__		,    __magic_name__		,    __magic_name__		,    __magic_name__						)
				    for node in graph						)

def  __snake_case							(	__magic_name__		,    __magic_name__		,    __magic_name__		,    __magic_name__						):







				'''simple docstring'''


				visited.add(__magic_name__						)
				rec_stk.add(__magic_name__						)

				for node in graph[vertex]:
								if node not in visited:
												if depth_first_search(__magic_name__		,    __magic_name__		,    __magic_name__		,    __magic_name__						):
																return True
								elif node in rec_stk:
												return True

    # The node needs to be removed from recursion stack before function ends
				rec_stk.remove(__magic_name__						)
				return False


if __name__ == "__main__":
						from doctest import testmod

						testmod()
