Sàng Eratosthenes là một thuật toán cổ xưa để tìm các số nguyên tố trong một đoạn các số tự nhiên. Thuật toán này do nhà toán học cổ người Hy Lạp Eratosthenes (Ê-ra-tô-xten) phát minh ra.
Vào thế kỉ III TCN, ở Cyrene (Hy Lạp), nhà toán học cổ đại Eratosthenes đã phát minh một thuật toán để tìm các số nguyên tố, gọi là sàng Eratosthenes. Ban đầu, ông xếp 100 lá cọ tương ứng với 100 số tự nhiên từ 1 đến 100. Sau khi chọc thủng lá cọ số 1, ông giữ nguyên các số nguyên tố (các lá cọ chưa bị chọc thủng) và lần lượt chọc thủng các bội của chúng. Cuối cùng, thuật toán đã sàng lại những số nguyên tố và loại bỏ các số không phải số nguyên tố nên được gọi là sàng nguyên tố Eratosthenes.[1][2]
Để tìm các số nguyên tố nhỏ hơn hoặc bằng số tự nhiên bằng sàng Eratosthenes, ta làm như sau:
Khi giải thuật kết thúc, tất các số chưa bị đánh dấu trong danh sách là các số nguyên tố cần tìm.
Xét là bội của số nguyên tố .
Nếu , ta có . Suy ra phải có một ước nguyên tố nhỏ hơn . Vì thế, các bội () đã bị sàng Eratosthenes loại bỏ trong các vòng lặp trước đó và ta chỉ cần xét .[3]
// Input: một số nguyên n > 1. // Cho A là một mảng boolean, được đánh số từ 0 đến n. // Gán tất cả phần tử trong mảng là true và gán A[0] := A[1] := false. for i = 2, 3, 4,..., √n: if A[i] is true: for j = i2, i2+i, i2+2i,..., n: A[]:= false
|tác giả=
và |họ=
(trợ giúp)