
"""simple docstring"""

from __future__ import annotations

from math import pi
from typing import Protocol

import matplotlib.pyplot as plt
import numpy as np






class 	_lowercase       (    __UpperCAmelCase		):




	def       _UpperCamelCase   (			self		,			UpperCAmelCase_ )		->							float:
			return 0.0


def 		UpperCAmelCase (		a_,						a_      ):





		'''simple docstring'''


		lowerCamelCase					:      Optional[int]          =   min([-20, np.min(fft_results[1 : samplerate // 2 - 1]      )]      )
		lowerCamelCase					:      Union[str, Any]          =   max([20, np.max(fft_results[1 : samplerate // 2 - 1]      )]      )
		return lowest, highest
def 		UpperCAmelCase (		a_,						a_      ):





		'''simple docstring'''


		lowerCamelCase					:      Dict          =   512
		lowerCamelCase					:      Optional[Any]          =   [1] + [0] * (size - 1)
		lowerCamelCase					:      int          =   [filter_type.process(a_      ) for item in inputs]

		lowerCamelCase					:      int          =   [0] * (samplerate - size)  # zero-padding
		outputs += filler
		lowerCamelCase					:      List[Any]          =   np.abs(np.fft.fft(a_      )      )
		lowerCamelCase					:      Optional[Any]          =   20 * np.logaa(a_      )

		# Frequencies on log scale from 24 to nyquist frequency
		plt.xlim(24,						samplerate / 2 - 1      )
		plt.xlabel('Frequency (Hz)'      )
		plt.xscale('log'      )

		# Display within reasonable bounds
		lowerCamelCase					:      Tuple          =   get_bounds(a_,						a_      )
		plt.ylim(max([-80, bounds[0]]      ),						min([80, bounds[1]]      )      )
		plt.ylabel('Gain (dB)'      )

		plt.plot(a_      )
		plt.show()





def 		UpperCAmelCase (		a_,						a_      ):





		'''simple docstring'''


		lowerCamelCase					:      Dict          =   512
		lowerCamelCase					:      Dict          =   [1] + [0] * (size - 1)
		lowerCamelCase					:      Dict          =   [filter_type.process(a_      ) for item in inputs]

		lowerCamelCase					:      str          =   [0] * (samplerate - size)  # zero-padding
		outputs += filler
		lowerCamelCase					:      Optional[int]          =   np.angle(np.fft.fft(a_      )      )

		# Frequencies on log scale from 24 to nyquist frequency
		plt.xlim(24,						samplerate / 2 - 1      )
		plt.xlabel('Frequency (Hz)'      )
		plt.xscale('log'      )

		plt.ylim(-2 * pi,						2 * pi      )
		plt.ylabel('Phase shift (Radians)'      )
		plt.plot(np.unwrap(a_,						-2 * pi      )      )
		plt.show()








"""simple docstring"""

def 		UpperCAmelCase (		a_      ):





		'''simple docstring'''


		lowerCamelCase					:      List[Any]          =   1
		for i in range(1,						num + 1      ):
				fact *= i
		return fact
def 		UpperCAmelCase (		a_      ):





		'''simple docstring'''


		lowerCamelCase					:      Optional[Any]          =   0
		while number > 0:
				lowerCamelCase					:      str          =   number % 10
				sum_of_digits += last_digit
				lowerCamelCase					:      Tuple          =   number // 10  # Removing the last_digit from the given number
		return sum_of_digits
def 		UpperCAmelCase (		a_ = 100      ):





		'''simple docstring'''


		lowerCamelCase					:      Optional[Any]          =   factorial(a_      )
		lowerCamelCase					:      int          =   split_and_add(a_      )
		return result


if __name__ == "__main__":
					print(solution(int(input('Enter the Number: ').strip())))






