
from math import sqrt


def 					__lowerCAmelCase    (    a__						) ->						list[int]:
				__a    							=					[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 					__lowerCAmelCase    (    a__						) ->						bool:
				return sum(factors(a__						)						) > n


def 					__lowerCAmelCase    (    a__						) ->						bool:
				__a    							=					factors(a__						)
				__a    							=					len(a__						)
				__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 					__lowerCAmelCase    (    a__						) ->						bool:
				return abundant(a__						) and not semi_perfect(a__						)


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

def 					__lowerCAmelCase    (    a__ = 99_8001						) ->						int:
				__a    							=					0
				for i in range(999		,					99		,					-1						):  # 3 digit numbers range from 999 down to 100
								for j in range(999		,					99		,					-1						):
												__a    							=					str(i * j						)
												if product_string == product_string[::-1] and i * j < n:
																__a    							=					max(a__		,					i * j						)
				return answer


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