






from math import sqrt




def   lowercase__   (  __snake_case					:							int						):


					'''simple docstring'''


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




def   lowercase__   (  __snake_case					:							int						):


					'''simple docstring'''


					return sum(factors(__snake_case						)						) > n




def   lowercase__   (  __snake_case					:							int						):


					'''simple docstring'''


					UpperCAmelCase_					:   List[str]   =		factors(__snake_case						)
					UpperCAmelCase_					:   List[str]   =		len(__snake_case						)
					UpperCAmelCase_					:   Tuple   =		[[0 for i in range(number + 1						)] for j in range(r + 1						)]
					for i in range(r + 1						):
										UpperCAmelCase_					:   Tuple   =		True

					for i in range(1  , number + 1						):
										UpperCAmelCase_					:   Union[str, Any]   =		False

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

					return subset[r][number] != 0




def   lowercase__   (  __snake_case					:							int						):


					'''simple docstring'''


					return abundant(__snake_case						) and not semi_perfect(__snake_case						)


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














from __future__ import annotations

from typing import Any




def   lowercase__   (  *__snake_case					:							list[list[int]]						):


					'''simple docstring'''


					if all(_check_not_integer(__snake_case						) for m in matrix_s						):
										for i in matrix_s[1:]:
															_verify_matrix_sizes(matrix_s[0]  , __snake_case						)
										return [[sum(__snake_case						) for t in zip(*__snake_case						)] for m in zip(*__snake_case						)]
					raise TypeError('Expected a matrix, got int/list instead'						)




def   lowercase__   (  __snake_case					:							list[list[int]]  , __snake_case					:							list[list[int]]						):


					'''simple docstring'''


					if (
					    _check_not_integer(__snake_case						)
					    and _check_not_integer(__snake_case						)
					    and _verify_matrix_sizes(__snake_case  , __snake_case						)
					):
										return [[i - j for i, j in zip(*__snake_case						)] for m in zip(__snake_case  , __snake_case						)]
					raise TypeError('Expected a matrix, got int/list instead'						)




def   lowercase__   (  __snake_case					:							list[list[int]]  , __snake_case					:							int | float						):


					'''simple docstring'''


					return [[x * n for x in row] for row in matrix]




def   lowercase__   (  __snake_case					:							list[list[int]]  , __snake_case					:							list[list[int]]						):


					'''simple docstring'''


					if _check_not_integer(__snake_case						) and _check_not_integer(__snake_case						):
										UpperCAmelCase_ ,						UpperCAmelCase_					:   str   =		_verify_matrix_sizes(__snake_case  , __snake_case						)

					if cols[0] != rows[1]:
										UpperCAmelCase_					:   Dict   =		(
										    'Cannot multiply matrix of dimensions '
										    F"({rows[0]},{cols[0]}) and ({rows[1]},{cols[1]})"
										)
										raise ValueError(__snake_case						)
					return [
					    [sum(m * n for m, n in zip(__snake_case  , __snake_case						)						) for j in zip(*__snake_case						)] for i in matrix_a
					]




def   lowercase__   (  __snake_case					:							int						):


					'''simple docstring'''


					UpperCAmelCase_					:   Optional[Any]   =		int(__snake_case						)
					return [[int(row == column						) for column in range(__snake_case						)] for row in range(__snake_case						)]




def   lowercase__   (  __snake_case					:							list[list[int]]  , __snake_case					:							bool = True						):


					'''simple docstring'''


					if _check_not_integer(__snake_case						):
										if return_map:
															return map(__snake_case  , zip(*__snake_case						)						)
										else:
															return list(map(__snake_case  , zip(*__snake_case						)						)						)
					raise TypeError('Expected a matrix, got int/list instead'						)




def   lowercase__   (  __snake_case					:							list[list[int]]  , __snake_case					:							int  , __snake_case					:							int						):


					'''simple docstring'''


					UpperCAmelCase_					:   Any   =		matrix[:row] + matrix[row + 1 :]
					return [row[:column] + row[column + 1 :] for row in minor]




def   lowercase__   (  __snake_case					:							list[list[int]]						):


					'''simple docstring'''


					if len(__snake_case						) == 1:
										return matrix[0][0]

					return sum(
					    x * determinant(minor(__snake_case  , 0  , __snake_case						)						) * (-1) ** i
					    for i, x in enumerate(matrix[0]						)						)




def   lowercase__   (  __snake_case					:							list[list[int]]						):


					'''simple docstring'''


					UpperCAmelCase_					:   Optional[int]   =		determinant(__snake_case						)
					if det == 0:
										return None

					UpperCAmelCase_					:   List[str]   =		[
					    [determinant(minor(__snake_case  , __snake_case  , __snake_case						)						) for j in range(len(__snake_case						)						)]
					    for i in range(len(__snake_case						)						)
					]

					UpperCAmelCase_					:   List[str]   =		[
					    [x * (-1) ** (row + col) for col, x in enumerate(matrix_minor[row]						)]
					    for row in range(len(__snake_case						)						)
					]
					UpperCAmelCase_					:   Tuple   =		list(transpose(__snake_case						)						)
					return scalar_multiply(__snake_case  , 1 / det						)




def   lowercase__   (  __snake_case					:							list[list[int]]						):


					'''simple docstring'''


					return not isinstance(__snake_case  , __snake_case						) and not isinstance(matrix[0]  , __snake_case						)




def   lowercase__   (  __snake_case					:							list[list[int]]						):


					'''simple docstring'''


					return len(__snake_case						), len(matrix[0]						)




def   lowercase__   (  __snake_case					:							list[list[int]]  , __snake_case					:							list[list[int]]						):


					'''simple docstring'''


					UpperCAmelCase_					:   Optional[Any]   =		_shape(__snake_case						) + _shape(__snake_case						)
					if shape[0] != shape[3] or shape[1] != shape[2]:
										UpperCAmelCase_					:   Optional[int]   =		(
										    'operands could not be broadcast together with shape '
										    F"({shape[0], shape[1]}), ({shape[2], shape[3]})"
										)
										raise ValueError(__snake_case						)
					return (shape[0], shape[2]), (shape[1], shape[3])




def   lowercase__   (  ):


					'''simple docstring'''


					UpperCAmelCase_					:   Tuple   =		[[12, 10], [3, 9]]
					UpperCAmelCase_					:   Optional[int]   =		[[3, 4], [7, 4]]
					UpperCAmelCase_					:   List[str]   =		[[11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34], [41, 42, 43, 44]]
					UpperCAmelCase_					:   str   =		[[3, 0, 2], [2, 0, -2], [0, 1, 1]]
					print(F"Add Operation, {add(__snake_case  , __snake_case						) = } \n"						)
					print(
					    F"Multiply Operation, {multiply(__snake_case  , __snake_case						) = } \n"  , )
					print(F"Identity: {identity(5						)}\n"						)
					print(F"Minor of {matrix_c} = {minor(__snake_case  , 1  , 2						)} \n"						)
					print(F"Determinant of {matrix_b} = {determinant(__snake_case						)} \n"						)
					print(F"Inverse of {matrix_d} = {inverse(__snake_case						)}\n"						)


if __name__ == "__main__":
		import doctest

		doctest.testmod()
		main()






