def  _lowerCamelCase					(   a_				: int = 50_00_00_00):
			lowerCamelCase						:int						  =     set()
			lowerCamelCase						:Union[str, Any]						  =     int((limit - 24) ** (1 / 2))

			lowerCamelCase						:Optional[Any]						  =     set(range(3						,			prime_square_limit + 1						,			2))
			primes.add(2)
			for p in range(3						,			prime_square_limit + 1						,			2):
						if p not in primes:
									continue
						primes.difference_update(set(range(p * p						,			prime_square_limit + 1						,			a_)))

			for primea in primes:
						lowerCamelCase						:Any						  =     primea * primea
						for primea in primes:
									lowerCamelCase						:Union[str, Any]						  =     primea * primea * primea
									if square + cube >= limit - 16:
												break
									for primea in primes:
												lowerCamelCase						:List[Any]						  =     primea * primea * primea * primea
												lowerCamelCase						:Dict						  =     square + cube + tetr
												if total >= limit:
															break
												ret.add(a_)

			return len(a_)


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




from maths.prime_factors import prime_factors





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


if __name__ == "__main__":
			import doctest

			doctest.testmod()



