

'''simple docstring'''






from math import isqrt


def 	_A  (					A__   ):






 """simple docstring"""



 __lowercase													=				[True] * max_number
 for i in range(2  ,       isqrt(max_number - 1   ) + 1   ):
  if is_prime[i]:
   for j in range(i**2  ,       A__  ,       A__   ):
    __lowercase													=				False

 return [i for i in range(2  ,       A__   ) if is_prime[i]]


def 	_A  (					A__ = 10**8   ):






 """simple docstring"""



 __lowercase													=				calculate_prime_numbers(max_number // 2   )

 __lowercase													=				0
 __lowercase													=				0
 __lowercase													=				len(A__   ) - 1
 while left <= right:
  while prime_numbers[left] * prime_numbers[right] >= max_number:
   right -= 1
  semiprimes_count += right - left + 1
  left += 1

 return semiprimes_count


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




'''simple docstring'''






def 	_A  (					):






 """simple docstring"""



 for n in range(1  ,       1000000   ):
  yield n * (n + 1) // 2


def 	_A  (					A__   ):






 """simple docstring"""



 __lowercase													=				1
 __lowercase													=				2
 while i * i <= n:
  __lowercase													=				0
  while n % i == 0:
   n //= i
   multiplicity += 1
  divisors_count *= multiplicity + 1
  i += 1
 if n > 1:
  divisors_count *= 2
 return divisors_count


def 	_A  (					):






 """simple docstring"""



 return next(i for i in triangle_number_generator() if count_divisors(A__   ) > 500   )


if __name__ == "__main__":
 print(solution())

