



from math import isqrt






def 					__lowerCAmelCase		(  __lowerCamelCase	:    int	)  ->						list[int]:
					__lowerCAmelCase	   =[True] * max_number
					for i in range(2				,   isqrt(max_number - 1	) + 1	):
										if is_prime[i]:
															for j in range(i**2				,   __lowerCamelCase				,   __lowerCamelCase	):
																				__lowerCAmelCase	   =False

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






def 					__lowerCAmelCase		(  __lowerCamelCase	:    int = 10**8	)  ->						int:
					__lowerCAmelCase	   =calculate_prime_numbers(max_number // 2	)

					__lowerCAmelCase	   =0
					__lowerCAmelCase	   =0
					__lowerCAmelCase	   =len(__lowerCamelCase	) - 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() = }")









def 					__lowerCAmelCase		(  )  ->						Tuple:
					__lowerCAmelCase	   =[]
					__lowerCAmelCase	   =1

					while len(__lowerCamelCase	) < 1E6:
										constant.append(str(__lowerCamelCase	)	)
										i += 1

					__lowerCAmelCase	   ="""""".join(__lowerCamelCase	)

					return (
					    int(constant[0]	)
					    * int(constant[9]	)
					    * int(constant[99]	)
					    * int(constant[999]	)
					    * int(constant[9999]	)
					    * int(constant[99999]	)
					    * int(constant[999999]	)
					)


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




