



"""simple docstring"""







from collections import defaultdict
from math import ceil, sqrt

def       _lowerCamelCase				(							UpperCAmelCase_ :       int = 1000000,	UpperCAmelCase_ :       int = 10     )	-> int:






	"""simple docstring"""





	A__											=					defaultdict(UpperCAmelCase_     )

	for outer_width in range(3,	(t_limit // 4) + 2     ):
		if outer_width * outer_width > t_limit:
			A__											=					max(
			    ceil(sqrt(outer_width * outer_width - t_limit     )     ),	1     )
		else:
			A__											=					1

		hole_width_lower_bound += (outer_width - hole_width_lower_bound) % 2

		for hole_width in range(UpperCAmelCase_,	outer_width - 1,	2     ):
			count[outer_width * outer_width - hole_width * hole_width] += 1

	return sum(1 for n in count.values() if 1 <= n <= 10     )


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





'''simple docstring'''




def __lowerCAmelCase					(				UpperCamelCase__							,    UpperCamelCase__							,    UpperCamelCase__							)      ->       int:

    def count_of_possible_combinations(UpperCamelCase__							) -> int:
        if target < 0:
            return 0
        if target == 0:
            return 1
        return sum(count_of_possible_combinations(target - item							) for item in array							)

    return count_of_possible_combinations(UpperCamelCase__							)






def __lowerCAmelCase					(				UpperCamelCase__							,    UpperCamelCase__							,    UpperCamelCase__							)      ->       int:

    def count_of_possible_combinations_with_dp_array(
        UpperCamelCase__							,    UpperCamelCase__							) -> int:
        if target < 0:
            return 0
        if target == 0:
            return 1
        if dp_array[target] != -1:
            return dp_array[target]
        __lowerCamelCase            =    sum(
            count_of_possible_combinations_with_dp_array(target - item							,    UpperCamelCase__							)
            for item in array							)
        __lowerCamelCase            =    answer
        return answer

    __lowerCamelCase            =    [-1] * (target + 1)
    return count_of_possible_combinations_with_dp_array(UpperCamelCase__							,    UpperCamelCase__							)






def __lowerCAmelCase					(				UpperCamelCase__							,    UpperCamelCase__							,    UpperCamelCase__							)      ->       int:
    __lowerCamelCase            =    [0] * (target + 1)
    __lowerCamelCase            =    1

    for i in range(1							,    target + 1							):
        for j in range(UpperCamelCase__							):
            if i - array[j] >= 0:
                dp_array[i] += dp_array[i - array[j]]

    return dp_array[target]


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  __UpperCAmelCase					=3
  __UpperCAmelCase					=5
  __UpperCAmelCase					=[1, 2, 5]
  print(combination_sum_iv(n, array, target))
