






import doctest
from collections import deque

import numpy as np


class     _a							:






  """simple docstring"""





  def __init__(  self			)      ->			None:
     UpperCamelCase_						=  [2, 1, 2, -1]
     UpperCamelCase_						=  [1, 2, 3, 4]




  def  _UpperCAmelCase  (  self			)      ->			list[float]:
     UpperCamelCase_						=  len(self.first_signal			)
     UpperCamelCase_						=  len(self.second_signal			)

     UpperCamelCase_						=  max(_UpperCAmelCase		,		_UpperCAmelCase			)

     # create a zero matrix of max_length x max_length
     UpperCamelCase_						=  [[0] * max_length for i in range(_UpperCAmelCase			)]

     # fills the smaller signal with zeros to make both signals of same length
     if length_first_signal < length_second_signal:
        self.first_signal += [0] * (max_length - length_first_signal)
     elif length_first_signal > length_second_signal:
        self.second_signal += [0] * (max_length - length_second_signal)
     for i in range(_UpperCAmelCase			):
        UpperCamelCase_						=  deque(self.second_signal			)
        rotated_signal.rotate(_UpperCAmelCase			)
        for j, item in enumerate(_UpperCAmelCase			):
           matrix[i][j] += item

        # multiply the matrix with the first signal
     UpperCamelCase_						=  np.matmul(np.transpose(_UpperCAmelCase			)		,		np.transpose(self.first_signal			)			)

     # rounding-off to two decimal places
     return [round(_UpperCAmelCase		,		2			) for i in final_signal]


if __name__ == "__main__":
 doctest.testmod()









def 						a__			(				A__ = 5_0_0_0_0_0_0_0				):
			SCREAMING_SNAKE_CASE_		:     Union[str, Any]					=					set()
			SCREAMING_SNAKE_CASE_		:     Optional[int]					=					int((limit - 2_4) ** (1 / 2)				)

			SCREAMING_SNAKE_CASE_		:     Dict					=					set(range(3,      prime_square_limit + 1,      2				)				)
			primes.add(2				)
			for p in range(3,      prime_square_limit + 1,      2				):
						if p not in primes:
									continue
						primes.difference_update(set(range(p * p,      prime_square_limit + 1,      A__				)				)				)

			for primea in primes:
						SCREAMING_SNAKE_CASE_		:     int					=					primea * primea
						for primea in primes:
									SCREAMING_SNAKE_CASE_		:     Dict					=					primea * primea * primea
									if square + cube >= limit - 1_6:
												break
									for primea in primes:
												SCREAMING_SNAKE_CASE_		:     Optional[int]					=					primea * primea * primea * primea
												SCREAMING_SNAKE_CASE_		:     str					=					square + cube + tetr
												if total >= limit:
															break
												ret.add(A__				)

			return len(A__				)


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





