






'''simple docstring'''







from math import sqrt


def 						_UpperCamelCase							(     snake_case__							):
						__A		   =      [1]
						for i in range(2							,			int(sqrt(_SCREAMING_SNAKE_CASE							)							) + 1							,			1							):
												if number % i == 0:
																		values.append(_SCREAMING_SNAKE_CASE							)
																		if int(number // i							) != i:
																								values.append(int(number // i							)							)
						return sorted(_SCREAMING_SNAKE_CASE							)


def 						_UpperCamelCase							(     snake_case__							):
						return sum(factors(_SCREAMING_SNAKE_CASE							)							) > n


def 						_UpperCamelCase							(     snake_case__							):
						__A		   =      factors(_SCREAMING_SNAKE_CASE							)
						__A		   =      len(_SCREAMING_SNAKE_CASE							)
						__A		   =      [[0 for i in range(number + 1							)] for j in range(r + 1							)]
						for i in range(r + 1							):
												__A		   =      True

						for i in range(1							,			number + 1							):
												__A		   =      False

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

						return subset[r][number] != 0


def 						_UpperCamelCase							(     snake_case__							):
						return abundant(_SCREAMING_SNAKE_CASE							) and not semi_perfect(_SCREAMING_SNAKE_CASE							)


if __name__ == "__main__":
							import doctest

							doctest.testmod(verbose=True)
							for number in (6_9, 7_0, 7_1):
														print(F"""{number} is {"" if weird(number) else "not "}weird.""")










'''simple docstring'''







def 						_UpperCamelCase							(     snake_case__							,			snake_case__							):
      if n < 0:
            return 0
      # table[i] represents the number of ways to get to amount i
      __A		   =      [0] * (n + 1)

      # There is exactly 1 way to get to zero(You pick no coins).
      __A		   =      1

      # Pick all coins one by one and update table[] values
      # after the index greater than or equal to the value of the
      # picked coin
      for coin_val in s:
            for j in range(snake_case__							,			n + 1							):
                  table[j] += table[j - coin_val]

      return table[n]


if __name__ == "__main__":
       import doctest

       doctest.testmod()


