Sieve of Eratosthenes

Algorithm
Take a set of natural numbers $S = \left\{{2, 3, 4, \ldots, n}\right\}$.


 * $(1): \quad$ Set $k = 2$


 * $(2): \quad$ Delete from $S$ every multiple of $k$ (but not $k$ itself).


 * $(3): \quad$ Set $k$ equal to the smallest number of those remaining in $S$ greater than the current value of $k$.


 * $(4): \quad$ If $k \le \sqrt n$, go to step $(2)$. Otherwise, STOP.

What remains in $S$ is the complete set of all prime numbers less than or equal to $n$.

Proof
The above constitutes an algorithm, for the following reasons:

Finiteness
For each iteration through the algorithm, step $(3)$ is executed, which increases $k$ by at least 1.

The algorithm will terminate after at most $\sqrt n - 2$ iterations (and probably a considerably less).

Definiteness

 * Step 1: Trivially definite.


 * Step 2: Trivially definite.


 * Step 3: Trivially definite.


 * Step 4: Trivially definite.

Inputs
The input to this algorithm is the set of natural numbers $S = \left\{{2, 3, 4, \ldots, n}\right\}$.

Outputs
The output to this algorithm is the set $S$ without any multiples of any numbers no greater than $\sqrt n$.

From Composite Number Has Prime Factor Less Than Or Equal To Its Square Root, it follows that all the numbers left in $S$ must be prime.

By the method of construction, no prime can have been deleted from $S$.

Hence the output consists of all, and only, the primes less than or equal to $n$

Effective
Each step of the algorithm is basic enough to be done exactly and in a finite length of time.