
def 							SCREAMING_SNAKE_CASE_      (			UpperCamelCase__		):
      UpperCamelCase__    :   List[str]					=				[]
      UpperCamelCase__    :   str					=				[]
      UpperCamelCase__    :   str					=				{
          '''^''': 3,
          '''*''': 2,
          '''/''': 2,
          '''%''': 2,
          '''+''': 1,
          '''-''': 1,
      }  # Priority of each operator
      UpperCamelCase__    :   Union[str, Any]					=				len(UpperCamelCase__		) if (len(UpperCamelCase__		) > 7) else 7

      # Print table header for output
      print(
          '''Symbol'''.center(8		) ,		'''Stack'''.center(UpperCamelCase__		) ,		'''Postfix'''.center(UpperCamelCase__		) ,		sep=''' | ''' ,		)
      print('''-''' * (print_width * 3 + 7)		)

      for x in infix:
            if x.isalpha() or x.isdigit():
                  post_fix.append(UpperCamelCase__		)  # if x is Alphabet / Digit, add it to Postfix
            elif x == "(":
                  stack.append(UpperCamelCase__		)  # if x is "(" push to Stack
            elif x == ")":  # if x is ")" pop stack until "(" is encountered
                  while stack[-1] != "(":
                        post_fix.append(stack.pop()		)  # Pop stack & add the content to Postfix
                  stack.pop()
            else:
                  if len(UpperCamelCase__		) == 0:
                        stack.append(UpperCamelCase__		)  # If stack is empty, push x to stack
                  else:  # while priority of x is not > priority of element in the stack
                        while len(UpperCamelCase__		) > 0 and priority[x] <= priority[stack[-1]]:
                              post_fix.append(stack.pop()		)  # pop stack & add to Postfix
                        stack.append(UpperCamelCase__		)  # push x to stack

            print(
                x.center(8		) ,		(''''''.join(UpperCamelCase__		)).ljust(UpperCamelCase__		) ,		(''''''.join(UpperCamelCase__		)).ljust(UpperCamelCase__		) ,		sep=''' | ''' ,		)  # Output in tabular format

      while len(UpperCamelCase__		) > 0:  # while stack is not empty
            post_fix.append(stack.pop()		)  # pop stack & add to Postfix
            print(
                ''' '''.center(8		) ,		(''''''.join(UpperCamelCase__		)).ljust(UpperCamelCase__		) ,		(''''''.join(UpperCamelCase__		)).ljust(UpperCamelCase__		) ,		sep=''' | ''' ,		)  # Output in tabular format

      return "".join(UpperCamelCase__		)  # return Postfix as str


def 							SCREAMING_SNAKE_CASE_      (			UpperCamelCase__		):
      UpperCamelCase__    :   List[str]					=				list(infix[::-1]		)  # reverse the infix equation

      for i in range(len(UpperCamelCase__		)		):
            if infix[i] == "(":
                  UpperCamelCase__    :   Optional[Any]					=				''')'''  # change "(" to ")"
            elif infix[i] == ")":
                  UpperCamelCase__    :   Union[str, Any]					=				'''('''  # change ")" to "("

      return (infix_2_postfix(''''''.join(UpperCamelCase__		)		))[
          ::-1
      ]  # call infix_2_postfix on Infix, return reverse of Postfix


if __name__ == "__main__":
    lowerCamelCase      =input("\nEnter an Infix Equation = ")  # Input an Infix equation
    lowerCamelCase      ="".join(Infix.split())  # Remove spaces from the input
    print("\n\t", Infix, "(Infix) -> ", infix_2_prefix(Infix), "(Prefix)")




def 							SCREAMING_SNAKE_CASE_      (			UpperCamelCase__ = 5_0_0_0_0_0_0_0		):
      UpperCamelCase__    :   Any					=				set()
      UpperCamelCase__    :   Any					=				int((limit - 2_4) ** (1 / 2)		)

      UpperCamelCase__    :   Dict					=				set(range(3 ,		prime_square_limit + 1 ,		2		)		)
      primes.add(2		)
      for p in range(3 ,		prime_square_limit + 1 ,		2		):
            if p not in primes:
                  continue
            primes.difference_update(set(range(p * p ,		prime_square_limit + 1 ,		UpperCamelCase__		)		)		)

      for primea in primes:
            UpperCamelCase__    :   Dict					=				primea * primea
            for primea in primes:
                  UpperCamelCase__    :   str					=				primea * primea * primea
                  if square + cube >= limit - 1_6:
                        break
                  for primea in primes:
                        UpperCamelCase__    :   Dict					=				primea * primea * primea * primea
                        UpperCamelCase__    :   Tuple					=				square + cube + tetr
                        if total >= limit:
                              break
                        ret.add(UpperCamelCase__		)

      return len(UpperCamelCase__		)


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


