






"""simple docstring"""




def        lowerCAmelCase (      UpperCamelCase_:							str     , UpperCamelCase_:							bool = False					)       ->							str:







  '''simple docstring'''







  if not isinstance(lowerCamelCase_     , lowerCamelCase_					):
    _a							=	f'''Expected string as input, found {type(lowerCamelCase_					)}'''
    raise ValueError(lowerCamelCase_					)
  if not isinstance(lowerCamelCase_     , lowerCamelCase_					):
    _a							=	f'''Expected boolean as use_pascal parameter, found {type(lowerCamelCase_					)}'''
    raise ValueError(lowerCamelCase_					)

  _a							=	input_str.split("_"					)

  _a							=	0 if use_pascal else 1

  _a							=	words[start_index:]

  _a							=	[word[0].upper() + word[1:] for word in words_to_capitalize]

  _a							=	"" if use_pascal else words[0]

  return "".join([initial_word, *capitalized_words]					)


if __name__ == "__main__":
     from doctest import testmod

     testmod()










"""simple docstring"""




import math






def        lowerCAmelCase (      UpperCamelCase_:							int					)       ->							list:







  '''simple docstring'''







  _a							=	[True] * n
  _a							=	False
  _a							=	False
  _a							=	True

  for i in range(3     , int(n**0.5 + 1					)     , 2					):
    _a							=	i * 2
    while index < n:
      _a							=	False
      _a							=	index + i

  _a							=	[2]

  for i in range(3     , UpperCamelCase_     , 2					):
    if is_prime[i]:
      primes.append(UpperCamelCase_					)

  return primes






def        lowerCAmelCase (      UpperCamelCase_:							int = 999966663333					)       ->							int:







  '''simple docstring'''







  _a							=	math.floor(math.sqrt(UpperCamelCase_					)					) + 100
  _a							=	prime_sieve(UpperCamelCase_					)

  _a							=	0
  _a							=	0
  _a							=	primes[prime_index]

  while (last_prime**2) <= limit:
    _a							=	primes[prime_index + 1]

    _a							=	last_prime**2
    _a							=	next_prime**2

    # Get numbers divisible by lps(current)
    _a							=	lower_bound + last_prime
    while upper_bound > current <= limit:
      matches_sum += current
      current += last_prime

    # Reset the upper_bound
    while (upper_bound - next_prime) > limit:
      upper_bound -= next_prime

    # Add the numbers divisible by ups(current)
    _a							=	upper_bound - next_prime
    while current > lower_bound:
      matches_sum += current
      current -= next_prime

    # Remove the numbers divisible by both ups and lps
    _a							=	0
    while upper_bound > current <= limit:
      if current <= lower_bound:
        # Increment the current number
        current += last_prime * next_prime
        continue

      if current > limit:
        break

      # Remove twice since it was added by both ups and lps
      matches_sum -= current * 2

      # Increment the current number
      current += last_prime * next_prime

    # Setup for next pair
    _a							=	next_prime
    prime_index += 1

  return matches_sum


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


