
"""simple docstring"""





from manim import *


class A_	(lowercase__      ):




  '''simple docstring'''







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					str			     =    Rectangle(height=0.5				,   width=0.5  )
     UpperCAmelCase_					:					Optional[Any]			     =    Rectangle(height=0.46				,   width=0.46  ).set_stroke(width=0  )

     UpperCAmelCase_					:					Union[str, Any]			     =    [mem.copy() for i in range(6  )]
     UpperCAmelCase_					:					List[Any]			     =    [mem.copy() for i in range(6  )]
     UpperCAmelCase_					:					List[str]			     =    VGroup(*lowercase_  ).arrange(lowercase_				,   buff=0  )
     UpperCAmelCase_					:					List[Any]			     =    VGroup(*lowercase_  ).arrange(lowercase_				,   buff=0  )
     UpperCAmelCase_					:					Dict			     =    VGroup(lowercase_				,   lowercase_  ).arrange(lowercase_				,   buff=0  )
     UpperCAmelCase_					:					List[Any]			     =    Text("CPU"				,   font_size=24  )
     UpperCAmelCase_					:					int			     =    Group(lowercase_				,   lowercase_  ).arrange(lowercase_				,   buff=0.5				,   aligned_edge=lowercase_  )
     cpu.move_to([-2.5, -0.5, 0]  )
     self.add(lowercase_  )

     UpperCAmelCase_					:					Union[str, Any]			     =    [mem.copy() for i in range(1  )]
     UpperCAmelCase_					:					Tuple			     =    VGroup(*lowercase_  ).arrange(lowercase_				,   buff=0  )
     UpperCAmelCase_					:					Any			     =    Text("GPU"				,   font_size=24  )
     UpperCAmelCase_					:					Tuple			     =    Group(lowercase_				,   lowercase_  ).arrange(lowercase_				,   buff=0.5				,   aligned_edge=lowercase_  )
     gpu.align_to(lowercase_				,   lowercase_  )
     gpu.set_x(gpu.get_x() - 1  )

     self.add(lowercase_  )

     UpperCAmelCase_					:					Any			     =    [mem.copy() for i in range(6  )]
     UpperCAmelCase_					:					str			     =    VGroup(*lowercase_  ).arrange(lowercase_				,   buff=0  )

     UpperCAmelCase_					:					Dict			     =    Text("Model"				,   font_size=24  )
     UpperCAmelCase_					:					Tuple			     =    Group(lowercase_				,   lowercase_  ).arrange(lowercase_				,   buff=0.5				,   aligned_edge=lowercase_  )
     model.move_to([3, -1.0, 0]  )

     self.play(
         Create(lowercase_				,   run_time=1  )				,   Create(lowercase_				,   run_time=1  )				,   Create(lowercase_				,   run_time=1  )				,   )

     UpperCAmelCase_					:					Any			     =    MarkupText(
         F"""First, an empty model skeleton is loaded\ninto <span fgcolor='{YELLOW}'>memory</span> without using much RAM."""				,   font_size=24				,   )

     UpperCAmelCase_					:					Union[str, Any]			     =    Square(side_length=2.2  )
     key.move_to([-5, 2, 0]  )

     UpperCAmelCase_					:					Any			     =    MarkupText(
         F"""<b>Key:</b>\n\n<span fgcolor='{YELLOW}'>●</span> Empty Model"""				,   font_size=18				,   )

     key_text.move_to([-5, 2.4, 0]  )

     step_a.move_to([2, 2, 0]  )
     self.play(Write(lowercase_				,   run_time=2.5  )				,   Write(lowercase_  )				,   Write(lowercase_  )  )

     self.add(lowercase_  )

     UpperCAmelCase_					:					Union[str, Any]			     =    []
     UpperCAmelCase_					:					List[str]			     =    []
     UpperCAmelCase_					:					Dict			     =    []
     for i, rect in enumerate(lowercase_  ):
        UpperCAmelCase_					:					Union[str, Any]			     =    Rectangle(height=0.46				,   width=0.46  ).set_stroke(width=0.0  ).set_fill(lowercase_				,   opacity=0.7  )
        cpu_target.move_to(lowercase_  )
        cpu_target.generate_target()
        UpperCAmelCase_					:					int			     =    0.46 / 4
        UpperCAmelCase_					:					Dict			     =    0.46 / 3

        if i == 0:
           cpu_target.target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT  )				,   buff=0.02				,   direction=lowercase_  )
           cpu_target.target.set_x(cpu_target.target.get_x() + 0.1  )
        elif i == 3:
           cpu_target.target.next_to(cpu_targs[0].target				,   direction=lowercase_				,   buff=0.0  )
        else:
           cpu_target.target.next_to(cpu_targs[i - 1].target				,   direction=lowercase_				,   buff=0.0  )
        cpu_targs.append(lowercase_  )

        first_animations.append(rect.animate(run_time=0.5  ).set_stroke(lowercase_  )  )
        second_animations.append(MoveToTarget(lowercase_				,   run_time=1.5  )  )

     self.play(*lowercase_  )
     self.play(*lowercase_  )

     self.wait()




"""simple docstring"""





def 	__a     (		__lowerCamelCase  ):
   UpperCAmelCase_					:					List[str]			     =    int(__lowerCamelCase  )
   if n_element < 1:
      UpperCAmelCase_					:					List[Any]			     =    ValueError("a should be a positive number"  )
      raise my_error

   UpperCAmelCase_					:					List[Any]			     =    [1]
   UpperCAmelCase_     ,   UpperCAmelCase_     ,   UpperCAmelCase_					:					Optional[int]			     =    (0, 0, 0)
   UpperCAmelCase_					:					Dict			     =    1
   while index < n_element:
      while hamming_list[i] * 2 <= hamming_list[-1]:
         i += 1
      while hamming_list[j] * 3 <= hamming_list[-1]:
         j += 1
      while hamming_list[k] * 5 <= hamming_list[-1]:
         k += 1
      hamming_list.append(
          min(hamming_list[i] * 2,		hamming_list[j] * 3,		hamming_list[k] * 5  )  )
      index += 1
   return hamming_list


if __name__ == "__main__":
    _a		       =							input('Enter the last number (nth term) of the Hamming Number Series: ')
    print('Formula of Hamming Number Series => 2^i * 3^j * 5^k')
    _a		       =							hamming(int(n))
    print('-----------------------------------------------------')
    print(f"""The list with nth numbers is: {hamming_numbers}""")
    print('-----------------------------------------------------')


