code: 
  
  
  
  
  
  '''simple docstring'''
  
  from __future__ import annotations
  
  from math import pi, pow
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					List[str]					)		->float:
      if side_length < 0:
          raise ValueError("""vol_cube() only accepts non-negative values"""					)
      return pow(__lowerCAmelCase      , 3					)
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					str      , __lowerCamelCase				:					List[str]					)		->float:
      if height < 0 or radius < 0:
          raise ValueError("""vol_spherical_cap() only accepts non-negative values"""					)
      # Volume is 1/3 pi * height squared * (3 * radius - height)
      return 1 / 3 * pi * pow(__lowerCAmelCase      , 2					) * (3 * radius - height)
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					List[Any]      , __lowerCamelCase				:					Union[str, Any]      , __lowerCamelCase				:					Optional[int]					)		->float:
      if radius_a < 0 or radius_a < 0 or centers_distance < 0:
          raise ValueError("""vol_spheres_intersect() only accepts non-negative values"""					)
      if centers_distance == 0:
          return vol_sphere(min(__lowerCAmelCase      , __lowerCAmelCase					)					)
  
      _SCREAMING_SNAKE_CASE             =    (
          (radius_a - radius_a + centers_distance)
          * (radius_a + radius_a - centers_distance)
          / (2 * centers_distance)
      )
      _SCREAMING_SNAKE_CASE             =    (
          (radius_a - radius_a + centers_distance)
          * (radius_a + radius_a - centers_distance)
          / (2 * centers_distance)
      )
  
      return vol_spherical_cap(__lowerCAmelCase      , __lowerCAmelCase					) + vol_spherical_cap(__lowerCAmelCase      , __lowerCAmelCase					)
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					Dict      , __lowerCamelCase				:					Dict      , __lowerCamelCase				:					int					)		->float:
  
      if radius_a <= 0 or radius_a <= 0 or centers_distance < 0:
          raise ValueError(
              """vol_spheres_union() only accepts non-negative values, non-zero radius"""					)
  
      if centers_distance == 0:
          return vol_sphere(max(__lowerCAmelCase      , __lowerCAmelCase					)					)
  
      return (
          vol_sphere(__lowerCAmelCase					)
          + vol_sphere(__lowerCAmelCase					)
          - vol_spheres_intersect(__lowerCAmelCase      , __lowerCAmelCase      , __lowerCAmelCase					)
      )
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					Tuple      , __lowerCamelCase				:					Optional[int]      , __lowerCamelCase				:					int					)		->float:
      if width < 0 or height < 0 or length < 0:
          raise ValueError("""vol_cuboid() only accepts non-negative values"""					)
      return float(width * height * length					)
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					Optional[int]      , __lowerCamelCase				:					List[Any]					)		->float:
      if height < 0 or area_of_base < 0:
          raise ValueError("""vol_cone() only accepts non-negative values"""					)
      return area_of_base * height / 3.0
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					List[Any]      , __lowerCamelCase				:					int					)		->float:
      if height < 0 or radius < 0:
          raise ValueError("""vol_right_circ_cone() only accepts non-negative values"""					)
      return pi * pow(__lowerCAmelCase      , 2					) * height / 3.0
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					List[Any]      , __lowerCamelCase				:					Any					)		->float:
      if height < 0 or area_of_base < 0:
          raise ValueError("""vol_prism() only accepts non-negative values"""					)
      return float(area_of_base * height					)
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					List[Any]      , __lowerCamelCase				:					str					)		->float:
      if height < 0 or area_of_base < 0:
          raise ValueError("""vol_pyramid() only accepts non-negative values"""					)
      return area_of_base * height / 3.0
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					int					)		->float:
      if radius < 0:
          raise ValueError("""vol_sphere() only accepts non-negative values"""					)
      # Volume is 4/3 * pi * radius cubed
      return 4 / 3 * pi * pow(__lowerCAmelCase      , 3					)
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					List[str]					)		->float:
      if radius < 0:
          raise ValueError("""vol_hemisphere() only accepts non-negative values"""					)
      # Volume is radius cubed * pi * 2/3
      return pow(__lowerCAmelCase      , 3					) * pi * 2 / 3
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					Optional[int]      , __lowerCamelCase				:					Union[str, Any]					)		->float:
      if height < 0 or radius < 0:
          raise ValueError("""vol_circular_cylinder() only accepts non-negative values"""					)
      # Volume is radius squared * height * pi
      return pow(__lowerCAmelCase      , 2					) * height * pi
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					str      , __lowerCamelCase				:					str      , __lowerCamelCase				:					Optional[Any]					)		->float:
      # Volume - (outer_radius squared - inner_radius squared) * pi * height
      if inner_radius < 0 or outer_radius < 0 or height < 0:
          raise ValueError(
              """vol_hollow_circular_cylinder() only accepts non-negative values"""					)
      if outer_radius <= inner_radius:
          raise ValueError("""outer_radius must be greater than inner_radius"""					)
      return pi * (pow(__lowerCAmelCase      , 2					) - pow(__lowerCAmelCase      , 2					)) * height
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					Optional[Any]      , __lowerCamelCase				:					Optional[int]      , __lowerCamelCase				:					Dict					)		->float:
      # Volume is 1/3 * pi * height *
      #           (radius_1 squared + radius_2 squared + radius_1 * radius_2)
      if radius_a < 0 or radius_a < 0 or height < 0:
          raise ValueError("""vol_conical_frustum() only accepts non-negative values"""					)
      return (
          1
          / 3
          * pi
          * height
          * (pow(__lowerCAmelCase      , 2					) + pow(__lowerCAmelCase      , 2					) + radius_a * radius_a)
      )
  
  
  
  
  
  def lowerCamelCase		(  __lowerCamelCase				:					Optional[int]      , __lowerCamelCase				:					str					)		->float:
      if torus_radius < 0 or tube_radius < 0:
          raise ValueError("""vol_torus() only accepts non-negative values"""					)
      return 2 * pow(__lowerCAmelCase      , 2					) * torus_radius * pow(__lowerCAmelCase      , 2					)
  
  
  
  
  
  def lowerCamelCase		(  )		->Any:
      print("""Volumes:"""					)
      print(F'Cube: {vol_cube(2					) = }'					)  # = 8
      print(F'Cuboid: {vol_cuboid(2      , 2      , 2					) = }'					)  # = 8
      print(F'Cone: {vol_cone(2      , 2					) = }'					)  # ~= 1.33
      print(F'Right Circular Cone: {vol_right_circ_cone(2      , 2					) = }'					)  # ~= 8.38
      print(F'Prism: {vol_prism(2      , 2					) = }'					)  # = 4
      print(F'Pyramid: {vol_pyramid(2      , 2					) = }'					)  # ~= 1.33
      print(F'Sphere: {vol_sphere(2					) = }'					)  # ~= 33.5
      print(F'Hemisphere: {vol_hemisphere(2					) = }'					)  # ~= 16.75
      print(F'Circular Cylinder: {vol_circular_cylinder(2      , 2					) = }'					)  # ~= 25.1
      print(F'Torus: {vol_torus(2      , 2					) = }'					)  # ~= 157.9
      print(F'Conical Frustum: {vol_conical_frustum(2      , 2      , 4					) = }'					)  # ~= 58.6
      print(F'Spherical cap: {vol_spherical_cap(1      , 2					) = }'					)  # ~= 5.24
      print(F'Spheres intersetion: {vol_spheres_intersect(2      , 2      , 1					) = }'					)  # ~= 21.21
      print(F'Spheres union: {vol_spheres_union(2      , 2      , 1					) = }'					)  # ~= 45.81
      print(
          F'Hollow Circular Cylinder: {vol_hollow_circular_cylinder(1      , 2      , 3					) = }'					)  # ~= 28.3
  
  
  if __name__ == "__main__":
        main()
  
  
  
  
style_context: 
  
  
  
  
  
  '''simple docstring'''
  
  def lowerCamelCase		(  __lowerCamelCase				:					int = 10**6					)		->int:
  
      if n <= 0:
          raise ValueError("""Please enter an integer greater than 0"""					)
  
      _SCREAMING_SNAKE_CASE             =    list(range(n + 1					)					)
      for number in range(2      , n + 1					):
          if phi[number] == number:
              phi[number] -= 1
              for multiple in range(number * 2      , n + 1      , __lowerCamelCase					):
                  _SCREAMING_SNAKE_CASE             =    (phi[multiple] // number) * (number - 1)
  
      _SCREAMING_SNAKE_CASE             =    1
      for number in range(1      , n + 1					):
          if (answer / phi[answer]) < (number / phi[number]):
              _SCREAMING_SNAKE_CASE             =    number
  
      return answer
  
  
  if __name__ == "__main__":
        print(solution())
  
  
  
  