





'''simple docstring'''







from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

snake_case_     :       Optional[Any]						=  typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
snake_case_     :       Union[str, Any]						=  typing.Union[np.floataa, int, float]  # noqa: UP007





def        lowerCamelCase_      (  SCREAMING_SNAKE_CASE__      :			Vector,			SCREAMING_SNAKE_CASE__      :			Vector   ) ->	VectorOut:
						return np.sqrt(np.sum((np.asarray(SCREAMING_SNAKE_CASE__   ) - np.asarray(SCREAMING_SNAKE_CASE__   )) ** 2   )   )





def        lowerCamelCase_      (  SCREAMING_SNAKE_CASE__      :			Vector,			SCREAMING_SNAKE_CASE__      :			Vector   ) ->	VectorOut:
						return sum((va - va) ** 2 for va, va in zip(SCREAMING_SNAKE_CASE__,			SCREAMING_SNAKE_CASE__   )   ) ** (1 / 2)


if __name__ == "__main__":





					def        lowerCamelCase_      (  ) ->	None:
											from timeit import timeit

											print('''Without Numpy'''   )
											print(
											    timeit(
											        '''euclidean_distance_no_np([1, 2, 3], [4, 5, 6])''',			number=10000,			globals=globals(),			)   )
											print('''With Numpy'''   )
											print(
											    timeit(
											        '''euclidean_distance([1, 2, 3], [4, 5, 6])''',			number=10000,			globals=globals(),			)   )
					benchmark()












'''simple docstring'''







def        lowerCamelCase_      (  SCREAMING_SNAKE_CASE__      :			int = 10,			SCREAMING_SNAKE_CASE__      :			int = 22   ) ->	int:
						UpperCAmelCase_			:      Optional[int]     						=  range(1,			SCREAMING_SNAKE_CASE__   )
						UpperCAmelCase_			:      List[Any]     						=  range(1,			SCREAMING_SNAKE_CASE__   )
						return sum(
						    1 for power in powers for base in bases if len(str(base**power   )   ) == power   )


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





