Ad
  • Default User Avatar

    It is an implementation of Eratosthenes' sieve, so time complexity is O(n log log n).
    But more than the algorithm behind, it uses two tricks to speed up the code:

    • It only checks one third of the integers (these with n % 6 in {1, 5});
    • It makes operations on array using slices, which call behind optimized low functions in C.

    Benchmarks of this implementation and many others are presented in the link given above.
    You can also find an implementation of Eratosthenes' sieve using Numpy, even faster than this one.