


from itertools import count




def  a   (lowerCAmelCase__ = 50   ):
   __a					=  [1] * min_block_length

   for n in count(lowerCAmelCase__   ):
      fill_count_functions.append(1   )

      for block_length in range(lowerCAmelCase__		,				n + 1   ):
         for block_start in range(n - block_length   ):
            fill_count_functions[n] += fill_count_functions[
                n - block_start - block_length - 1
            ]

         fill_count_functions[n] += 1

      if fill_count_functions[n] > 1_000_000:
         break

   return n


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





from math import isqrt





def      lowerCamelCase_					(							lowerCamelCase__       ):
				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__ = 1_0**8       ):
				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() = }""")


