Time complexity of Sieve of Eratosthenes algorithm
From Wikipedia: The complexity of the algorithm is O(n(logn)(loglogn)) bit operations. How do you arrive at that? That the complexity includes the loglogn term tells me that there is a sqrt(n) somewhere. Suppose I am running the sieve on the first 100 numbers ( n = 100 ), assuming that marking the numbers as composite takes constant time (array implementation), the number of times we use mark_composite() would be something like n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2) And to find the next prime number (for example to jump to 7 after crossing out all the numbers that are multiples of 5 ),