



'''simple docstring'''

from math import sqrt







def     __UpperCamelCase					(				_lowercase       )			->      list[int]:
	_lowercase       :							Union[str, Any]  	=		[1]
	for i in range(2,					int(sqrt(_lowercase       )       ) + 1,					1       ):
		if number % i == 0:
			values.append(_lowercase       )
			if int(number // i       ) != i:
				values.append(int(number // i       )       )
	return sorted(_lowercase       )







def     __UpperCamelCase					(				_lowercase       )			->      bool:
	return sum(factors(_lowercase       )       ) > n







def     __UpperCamelCase					(				_lowercase       )			->      bool:
	_lowercase       :							List[str]  	=		factors(_lowercase       )
	_lowercase       :							Optional[Any]  	=		len(_lowercase       )
	_lowercase       :							List[Any]  	=		[[0 for i in range(number + 1       )] for j in range(r + 1       )]
	for i in range(r + 1       ):
		_lowercase       :							str  	=		True

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

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

	return subset[r][number] != 0







def     __UpperCamelCase					(				_lowercase       )			->      bool:
	return abundant(_lowercase       ) and not semi_perfect(_lowercase       )


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

from __future__ import annotations

import sys







def     __UpperCamelCase					(				_lowercase       )			->      int:
	if n < 0:
		raise ValueError('Negative arguments are not supported'       )
	return _fib(_lowercase       )[0]







def     __UpperCamelCase					(				_lowercase       )			->      tuple[int, int]:
	if n == 0:  # (F(0), F(1))
		return (0, 1)

	# F(2n) = F(n)[2F(n+1) − F(n)]
	# F(2n+1) = F(n+1)^2+F(n)^2
	_lowercase	,     _lowercase       :							List[str]  	=		_fib(n // 2       )
	_lowercase       :							Dict  	=		a * (b * 2 - a)
	_lowercase       :							Union[str, Any]  	=		a * a + b * b
	return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
		_A					:     Optional[Any]      =int(sys.argv[1])
		print(F'''fibonacci({n}) is {fibonacci(n)}''')
