






from dataclasses import dataclass
from typing import Callable, Optional

import datasets




@dataclass
class 						UpperCAmelCase_  (		datasets.BuilderConfig    ):


						'''simple docstring'''




						A   :      Optional[Callable]						 =    None
						A   :      Optional[dict]						 =    None
						A   :      Optional[datasets.Features]						 =    None






						def 					_lowerCAmelCase				(		self )       -> Optional[int]:
								assert self.generator is not None, "generator must be specified"

								if self.gen_kwargs is None:
										snake_case_ :							Union[str, Any]         =				{}




class 						UpperCAmelCase_  (		datasets.GeneratorBasedBuilder    ):


						'''simple docstring'''




						A   :      Optional[int]						 =    GeneratorConfig






						def 					_lowerCAmelCase				(		self )       -> Union[str, Any]:
								return datasets.DatasetInfo(features=self.config.features )






						def 					_lowerCAmelCase				(		self						, _SCREAMING_SNAKE_CASE )       -> Tuple:
								return [datasets.SplitGenerator(name=datasets.Split.TRAIN						, gen_kwargs=self.config.gen_kwargs )]






						def 					_lowerCAmelCase				(		self						, **_SCREAMING_SNAKE_CASE )       -> List[str]:
								for idx, ex in enumerate(self.config.generator(**_SCREAMING_SNAKE_CASE ) ):
										yield idx, ex








import math

def    lowerCAmelCase__		(			_a				:	int			):

		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    lowerCAmelCase__		(			_a				:	int = 60_08_51_47_51_43			):

		try:
				snake_case_ :							int         =				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."			)
		snake_case_ :							Dict         =				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			):
								snake_case_ :							List[Any]         =				n // i
								break
						elif is_prime(_a			):
								snake_case_ :							str         =				i
		return max_number


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