


'''simple docstring'''






def      UpperCAmelCase      (		lowerCamelCase_  :int = 50_00_00_00 ):







		'''simple docstring'''
		snake_case_		:							Dict			       =						set()
		snake_case_		:							List[str]			       =						int((limit - 24) ** (1 / 2) )

		snake_case_		:							List[str]			       =						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				,      lowerCamelCase_ ) ) )

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

		return len(lowerCamelCase_ )


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



'''simple docstring'''






import torch

from transformers import AutoModel
class 						__UpperCamelCase	(						torch.nn.Module							):





							def __init__(  self		:Union[str, Any]  ,_UpperCamelCase		:Tuple="sayef/fsner-bert-base-uncased"			):
									super(_UpperCamelCase  ,self			).__init__()

									snake_case_		:							Dict			       =						AutoModel.from_pretrained(_UpperCamelCase  ,return_dict=_UpperCamelCase			)
									snake_case_		:							Dict			       =						torch.nn.CosineSimilarity(3  ,1E-0_8			)
									snake_case_		:							int			       =						torch.nn.Softmax(dim=1			)





							def 		a__   (  self		:Optional[Any]  ,**_UpperCamelCase		:Optional[Any]			):
									return self.bert(**_UpperCamelCase			).last_hidden_state





							def 		a__   (  self		:List[Any]  ,_UpperCamelCase		:Dict			):
									return token_embeddings.sum(2  ,keepdim=_UpperCamelCase			)





							def 		a__   (  self		:Optional[Any]  ,_UpperCamelCase		:List[str]  ,_UpperCamelCase		:List[str]  ,_UpperCamelCase		:List[str]=1			):
									return self.softmax(T * self.cos(_UpperCamelCase  ,_UpperCamelCase			)			)





							def 		a__   (  self		:Optional[Any]  ,_UpperCamelCase		:Optional[Any]  ,_UpperCamelCase		:int			):
									snake_case_		:							Union[str, Any]			       =						W_supports["""sizes"""].tolist()
									snake_case_		:							Dict			       =						W_supports["""start_token_id"""].item()
									snake_case_		:							int			       =						W_supports["""end_token_id"""].item()

									del W_supports["sizes"]
									del W_supports["start_token_id"]
									del W_supports["end_token_id"]

									snake_case_		:							int			       =						self.BERT(**_UpperCamelCase			)
									snake_case_		:							int			       =						self.BERT(**_UpperCamelCase			)

									snake_case_		:							Any			       =						None
									snake_case_		:							Any			       =						None

									snake_case_		:							Union[str, Any]			       =						W_supports["""input_ids"""] == start_token_id
									snake_case_		:							Tuple			       =						W_supports["""input_ids"""] == end_token_id

									for i, size in enumerate(_UpperCamelCase			):
											if i == 0:
													snake_case_		:							str			       =						0
											else:
													snake_case_		:							Optional[Any]			       =						support_sizes[i - 1]

											snake_case_		:							Dict			       =						S[s : s + size][start_token_masks[s : s + size]]
											snake_case_		:							Optional[Any]			       =						S[s : s + size][end_token_masks[s : s + size]]

											snake_case_		:							int			       =						torch.matmul(q[i]  ,s_start.T			).sum(1			).softmax(0			)
											snake_case_		:							List[str]			       =						torch.matmul(q[i]  ,s_end.T			).sum(1			).softmax(0			)

											if p_starts is not None:
													snake_case_		:							List[str]			       =						torch.vstack((p_starts, p_start)			)
													snake_case_		:							Tuple			       =						torch.vstack((p_ends, p_end)			)
											else:
													snake_case_		:							Any			       =						p_start
													snake_case_		:							List[str]			       =						p_end

									return p_starts, p_ends