




'''simple docstring'''

import importlib.metadata
import operator
import re
import sys
from typing import Optional

from packaging import version


a  :				Dict									=  {
    '<': operator.lt,
    '<=': operator.le,
    '==': operator.eq,
    '!=': operator.ne,
    '>=': operator.ge,
    '>': operator.gt,
}


def 		__magic_name__    (	__UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase	)		->					int:

					'''simple docstring'''

					if got_ver is None or want_ver is None:
										raise ValueError(
										    F"Unable to compare versions for {requirement}: need={want_ver} found={got_ver}. This is unusual. Consider"
										    F" reinstalling {pkg}."	)
					if not ops[op](version.parse(__UpperCAmelCase	),      version.parse(__UpperCAmelCase	)	):
										raise ImportError(
										    F"{requirement} is required for a normal functioning of this module, but found {pkg}=={got_ver}.{hint}"	)


def 		__magic_name__    (	__UpperCAmelCase,      __UpperCAmelCase = None	)		->					None:

					'''simple docstring'''

					snake_case_									=				F"\n{hint}" if hint is not None else ''''''

					# non-versioned check
					if re.match(r'''^[\w_\-\d]+$''',      __UpperCAmelCase	):
										snake_case_			,snake_case_			,snake_case_									=				requirement, None, None
					else:
										snake_case_									=				re.findall(r'''^([^!=<>\s]+)([\s!=<>]{1,2}.+)''',      __UpperCAmelCase	)
										if not match:
															raise ValueError(
															    '''requirement needs to be in the pip package format, .e.g., package_a==1.23, or package_b>=1.23, but'''
															    F" got {requirement}"	)
										snake_case_			,snake_case_									=				match[0]
										snake_case_									=				want_full.split(''','''	)  # there could be multiple requirements
										snake_case_									=				{}
										for w in want_range:
															snake_case_									=				re.findall(r'''^([\s!=<>]{1,2})(.+)''',      __UpperCAmelCase	)
															if not match:
																				raise ValueError(
																				    '''requirement needs to be in the pip package format, .e.g., package_a==1.23, or package_b>=1.23,'''
																				    F" but got {requirement}"	)
															snake_case_			,snake_case_									=				match[0]
															snake_case_									=				want_ver
															if op not in ops:
																				raise ValueError(F"{requirement}: need one of {list(ops.keys()	)}, but got {op}"	)

    # special case
					if pkg == "python":
										snake_case_									=				'''.'''.join([str(__UpperCAmelCase	) for x in sys.version_info[:3]]	)
										for op, want_ver in wanted.items():
															_compare_versions(__UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase	)
										return

					# check if any version is installed
					try:
										snake_case_									=				importlib.metadata.version(__UpperCAmelCase	)
					except importlib.metadata.PackageNotFoundError:
										raise importlib.metadata.PackageNotFoundError(
										    F"The '{requirement}' distribution was not found and is required by this application. {hint}"	)

					# check that the right version is installed if version number or a range was provided
					if want_ver is not None:
										for op, want_ver in wanted.items():
															_compare_versions(__UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase,      __UpperCAmelCase	)


def 		__magic_name__    (	__UpperCAmelCase	)		->					Dict:

					'''simple docstring'''

					snake_case_									=				'''Try: pip install transformers -U or pip install -e \'.[dev]\' if you\'re working with git main'''
					return require_version(__UpperCAmelCase,      __UpperCAmelCase	)



def    __UpperCamelCase     (				lowerCAmelCase__							:				int = 5_0_0_0_0_0_0_0  ):
 __a :  int						=  set()
 __a :  str						=  int((limit - 2_4) ** (1 / 2)  )

 __a :  int						=  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:
  __a :  Union[str, Any]						=  primea * primea
  for primea in primes:
   __a :  Union[str, Any]						=  primea * primea * primea
   if square + cube >= limit - 1_6:
    break
   for primea in primes:
    __a :  int						=  primea * primea * primea * primea
    __a :  Union[str, Any]						=  square + cube + tetr
    if total >= limit:
     break
    ret.add(lowerCAmelCase__  )

 return len(lowerCAmelCase__  )


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