
'''simple docstring'''

from math import isqrt


def        UpperCAmelCase_ (  lowerCamelCase_			):







 """simple docstring"""


 lowerCAmelCase__     :   Union[str, Any]     		=	[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__     :   int     		=	False

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


def        UpperCAmelCase_ (  lowerCamelCase_ = 1_0**8			):







 """simple docstring"""


 lowerCAmelCase__     :   Tuple     		=	calculate_prime_numbers(max_number // 2			)

 lowerCAmelCase__     :   str     		=	0
 lowerCAmelCase__     :   Tuple     		=	0
 lowerCAmelCase__     :   Any     		=	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() = }')







'''simple docstring'''

def        UpperCAmelCase_ (  lowerCamelCase_      ,			lowerCamelCase_      ,			lowerCamelCase_      ,			lowerCamelCase_			):







 """simple docstring"""


 if height >= 1:
  move_tower(height - 1      ,			lowerCamelCase_      ,			lowerCamelCase_      ,			lowerCamelCase_			)
  move_disk(lowerCamelCase_      ,			lowerCamelCase_			)
  move_tower(height - 1      ,			lowerCamelCase_      ,			lowerCamelCase_      ,			lowerCamelCase_			)


def        UpperCAmelCase_ (  lowerCamelCase_      ,			lowerCamelCase_			):







 """simple docstring"""


 print("moving disk from"      ,			lowerCamelCase_      ,			"to"      ,			lowerCamelCase_			)


def        UpperCAmelCase_ (  ):







 """simple docstring"""


 lowerCAmelCase__     :   List[str]     		=	int(input("Height of hanoi: "			).strip()			)
 move_tower(lowerCamelCase_      ,			"A"      ,			"B"      ,			"C"			)


if __name__ == "__main__":
     main()





