'''simple docstring'''







from math import isqrt


def    lowerCamelCase       (			UpperCAmelCase__				:  Optional[int]		)			->	List[Any]:


							'''simple docstring'''






							SCREAMING_SNAKE_CASE__     :str						    = [True] * max_number
							for i in range(2				,						isqrt(max_number - 1		) + 1		):
														if is_prime[i]:
																					for j in range(i**2				,						UpperCAmelCase__				,						UpperCAmelCase__		):
																												SCREAMING_SNAKE_CASE__     :List[Any]						    = False

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


def    lowerCamelCase       (			UpperCAmelCase__				:  Any = 1_0**8		)			->	Any:


							'''simple docstring'''






							SCREAMING_SNAKE_CASE__     :Any						    = calculate_prime_numbers(max_number // 2		)

							SCREAMING_SNAKE_CASE__     :Optional[Any]						    = 0
							SCREAMING_SNAKE_CASE__     :Optional[Any]						    = 0
							SCREAMING_SNAKE_CASE__     :int						    = len(UpperCAmelCase__		) - 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() = }")














import math
from collections.abc import Iterator
from itertools import takewhile

def   __lowercase       (			snake_case			):







				"""simple docstring"""






				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(snake_case			) + 1			),	6			):
								if number % i == 0 or number % (i + 2) == 0:
												return False
				return True

def   __lowercase       (			):







				"""simple docstring"""






				__magic_name__		:str   =   2
				while True:
								if is_prime(snake_case			):
												yield num
								num += 1

def   __lowercase       (			snake_case = 2_0_0_0_0_0_0			):







				"""simple docstring"""






				return sum(takewhile(lambda snake_case			: x < n,	prime_generator()			)			)


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






