

"""simple docstring"""




from __future__ import annotations

from pathlib import Path

def 				A_					(							a   ,				a					):

      """simple docstring"""



      return pointa[0] * pointa[1] - pointa[1] * pointa[0]

def 				A_					(							a   ,				a   ,				a   ,				a   ,				a   ,				a					):

      """simple docstring"""



      SCREAMING_SNAKE_CASE_			:					tuple[int, int]          =       (xa, ya)
      SCREAMING_SNAKE_CASE_			:					tuple[int, int]          =       (xa - xa, ya - ya)
      SCREAMING_SNAKE_CASE_			:					tuple[int, int]          =       (xa - xa, ya - ya)
      SCREAMING_SNAKE_CASE_			:					float          =       -vector_product(a   ,				a					) / vector_product(
          a   ,				a					)
      SCREAMING_SNAKE_CASE_			:					float          =       +vector_product(a   ,				a					) / vector_product(
          a   ,				a					)

      return a > 0 and b > 0 and a + b < 1

def 				A_					(							a = "p102_triangles.txt"					):

      """simple docstring"""



      SCREAMING_SNAKE_CASE_			:					str          =       Path(a					).parent.joinpath(a					).read_text(encoding='utf-8'					)

      SCREAMING_SNAKE_CASE_			:					list[list[int]]          =       []
      for line in data.strip().split('\n'					):
            triangles.append([int(a					) for number in line.split(','					)]					)

      SCREAMING_SNAKE_CASE_			:					int          =       0
      SCREAMING_SNAKE_CASE_			:					list[int]

      for triangle in triangles:
            ret += contains_origin(*a					)

      return ret


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









from math import sqrt

def 				A_					(							a					):

      """simple docstring"""



      SCREAMING_SNAKE_CASE_			:					List[str]          =       [1]
      for i in range(2   ,				int(sqrt(a					)					) + 1   ,				1					):
            if number % i == 0:
                  values.append(a					)
                  if int(number // i					) != i:
                        values.append(int(number // i					)					)
      return sorted(a					)

def 				A_					(							a					):

      """simple docstring"""



      return sum(factors(a					)					) > n

def 				A_					(							a					):

      """simple docstring"""



      SCREAMING_SNAKE_CASE_			:					Union[str, Any]          =       factors(a					)
      SCREAMING_SNAKE_CASE_			:					Optional[int]          =       len(a					)
      SCREAMING_SNAKE_CASE_			:					Optional[int]          =       [[0 for i in range(number + 1					)] for j in range(r + 1					)]
      for i in range(r + 1					):
            SCREAMING_SNAKE_CASE_			:					Optional[int]          =       True

      for i in range(1   ,				number + 1					):
            SCREAMING_SNAKE_CASE_			:					Optional[Any]          =       False

      for i in range(1   ,				r + 1					):
            for j in range(1   ,				number + 1					):
                  if j < values[i - 1]:
                        SCREAMING_SNAKE_CASE_			:					Dict          =       subset[i - 1][j]
                  else:
                        SCREAMING_SNAKE_CASE_			:					List[str]          =       subset[i - 1][j] or subset[i - 1][j - values[i - 1]]

      return subset[r][number] != 0

def 				A_					(							a					):

      """simple docstring"""



      return abundant(a					) and not semi_perfect(a					)


if __name__ == "__main__":
    import doctest

    doctest.testmod(verbose=True)
    for number in (69, 70, 71):
        print(F'{number} is {"" if weird(number) else "not "}weird.')






