






'''simple docstring'''


import math







def 						__magic_name__(			_A       ):
						'''simple docstring'''





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

						# All primes number are in format of 6k +/- 1
						for i in range(5    ,   int(math.sqrt(_A       ) + 1       )    ,   6       ):
												if number % i == 0 or number % (i + 2) == 0:
																		return False
						return True







def 						__magic_name__(			_A = 6008_5147_5143       ):
						'''simple docstring'''





						try:
												UpperCamelCase__       =			int(_A       )
						except (TypeError, ValueError):
												raise TypeError("""Parameter n must be int or castable to int."""       )
						if n <= 0:
												raise ValueError("""Parameter n must be greater than or equal to one."""       )
						UpperCamelCase__       =			0
						if is_prime(_A       ):
												return n
						while n % 2 == 0:
												n //= 2
						if is_prime(_A       ):
												return n
						for i in range(3    ,   int(math.sqrt(_A       )       ) + 1    ,   2       ):
												if n % i == 0:
																		if is_prime(n // i       ):
																								UpperCamelCase__       =			n // i
																								break
																		elif is_prime(_A       ):
																								UpperCamelCase__       =			i
						return max_number


if __name__ == "__main__":
					print(f"""{solution() = }""")








'''simple docstring'''


lowerCamelCase_					:			List[Any]     						=				{0: [1, 2], 1: [0, 3], 2: [0], 3: [1], 4: [5, 6], 5: [4, 6], 6: [4, 5]}

lowerCamelCase_					:			Tuple     						=				{0: [1, 2, 3], 1: [0, 3], 2: [0], 3: [0, 1], 4: [], 5: []}







def 						__magic_name__(			_A    ,   _A    ,   _A       ):
						'''simple docstring'''





						UpperCamelCase__       =			True
						UpperCamelCase__       =			[]

						for neighbour in graph[vert]:
												if not visited[neighbour]:
																		connected_verts += dfs(_A    ,   _A    ,   _A       )

						return [vert, *connected_verts]







def 						__magic_name__(			_A       ):
						'''simple docstring'''





						UpperCamelCase__       =			len(_A       )
						UpperCamelCase__       =			graph_size * [False]
						UpperCamelCase__       =			[]

						for i in range(_A       ):
												if not visited[i]:
																		UpperCamelCase__       =			dfs(_A    ,   _A    ,   _A       )
																		components_list.append(_A       )

						return components_list


if __name__ == "__main__":
					import doctest

					doctest.testmod()
