


from math import sqrt



def 			_a      (    __UpperCamelCase			):
     a_     :  Dict				      =     [1]
     for i in range(2	,	int(sqrt(__UpperCamelCase			)			) + 1	,	1			):
          if number % i == 0:
               values.append(__UpperCamelCase			)
               if int(number // i			) != i:
                    values.append(int(number // i			)			)
     return sorted(__UpperCamelCase			)



def 			_a      (    __UpperCamelCase			):
     return sum(factors(__UpperCamelCase			)			) > n



def 			_a      (    __UpperCamelCase			):
     a_     :  List[str]				      =     factors(__UpperCamelCase			)
     a_     :  Any				      =     len(__UpperCamelCase			)
     a_     :  Union[str, Any]				      =     [[0 for i in range(number + 1			)] for j in range(r + 1			)]
     for i in range(r + 1			):
          a_     :  Dict				      =     True

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

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

     return subset[r][number] != 0



def 			_a      (    __UpperCamelCase			):
     return abundant(__UpperCamelCase			) and not semi_perfect(__UpperCamelCase			)


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.''')







class 	a__						:

       def __init__( self   :  int   ,				lowerCamelCase_   :  int     ):
            a_     :  Dict				      =     data
            a_     :  int
            a_     :  Node



def 			_a      (    __UpperCamelCase			):
     a_     :  int				      =     0
     a_     :  Optional[Any]				      =     x



def 			_a      (    __UpperCamelCase	,	__UpperCamelCase			):
     a_      ,      a_     :  Dict				      =     find_set(__UpperCamelCase			), find_set(__UpperCamelCase			)
     if x == y:
          return

     elif x.rank > y.rank:
          a_     :  Tuple				      =     x
     else:
          a_     :  Optional[Any]				      =     y
          if x.rank == y.rank:
               y.rank += 1



def 			_a      (    __UpperCamelCase			):
     if x != x.parent:
          a_     :  Tuple				      =     find_set(x.parent			)
     return x.parent



def 			_a      (    __UpperCamelCase			):
     a_     :  List[Any]				      =     ({0, 1, 2}, {3, 4, 5})
     for s in sets:
          if node.data in s:
               return s
     a_     :  Union[str, Any]				      =     F'''{node.data} is not in {sets}'''
     raise ValueError(__UpperCamelCase			)



def 			_a      (    ):
     a_     :  int				      =     [Node(__UpperCamelCase			) for i in range(6			)]
     for v in vertex:
          make_set(__UpperCamelCase			)

     union_set(vertex[0]	,	vertex[1]			)
     union_set(vertex[1]	,	vertex[2]			)
     union_set(vertex[3]	,	vertex[4]			)
     union_set(vertex[3]	,	vertex[5]			)

     for nodea in vertex:
          for nodea in vertex:
               if find_python_set(__UpperCamelCase			).isdisjoint(find_python_set(__UpperCamelCase			)			):
                    assert find_set(__UpperCamelCase			) != find_set(__UpperCamelCase			)
               else:
                    assert find_set(__UpperCamelCase			) == find_set(__UpperCamelCase			)


if __name__ == "__main__":
       test_disjoint_set()



