




"""simple docstring"""



from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

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



def 					_lowerCamelCase(					a ,  a							):
       return np.sqrt(np.sum((np.asarray(a							) - np.asarray(a							)) ** 2							)							)



def 					_lowerCamelCase(					a ,  a							):
       return sum((va - va) ** 2 for va, va in zip(a ,  a							)							) ** (1 / 2)


if __name__ == "__main__":



   def 					_lowerCamelCase(					):
          from timeit import timeit

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




   benchmark()

"""simple docstring"""



import math



def 					_lowerCamelCase(					a							):
       __a     				=  []
       __a     				=  2
       __a     				=  int(math.sqrt(a							)							)  # Size of every segment
       __a     				=  [True] * (end + 1)
       __a     				=  []

       while start <= end:
              if temp[start] is True:
                     in_prime.append(a							)
                     for i in range(start * start ,  end + 1 ,  a							):
                            __a     				=  False
              start += 1
       prime += in_prime

       __a     				=  end + 1
       __a     				=  min(2 * end ,  a							)

       while low <= n:
              __a     				=  [True] * (high - low + 1)
              for each in in_prime:
                     __a     				=  math.floor(low / each							) * each
                     if t < low:
                            t += each

                     for j in range(a ,  high + 1 ,  a							):
                            __a     				=  False

              for j in range(len(a							)							):
                     if temp[j] is True:
                            prime.append(j + low							)

              __a     				=  high + 1
              __a     				=  min(high + end ,  a							)

       return prime




print(sieve(10**6))
