![]() | Bài viết này không có hoặc có quá ít liên kết đến các bài viết Wikipedia khác. (tháng 7 năm 2018) |
Bài này không có nguồn tham khảo nào. |
Trong toán học, sàng nguyên tố Atkin là một thuật toán nhanh và hiện đại để tìm tất cả các số nguyên tố nhỏ hơn một số nguyên xác định. Đó là một thuật toán tối ưu từ sàng nguyên tố Eratosthenes: sàng Atkin chuẩn bị trước một số việc rồi sau đó đánh dấu các bội số của bình phương các số nguyên tố, chứ không phải là bội của các số nguyên tố. Thuật toán này được xây dựng bở A. O. L. Atkin và Daniel J. Bernstein.
Pseudocode sau đây mô tả thuật toán này:
// giới hạn tìm kiếm limit ← 1000000 // khởi tạo lưới lọc is_prime(i) ← false, ∀ i ∈ [5, limit] // đưa vào số nguyên tố ứng cử: // những số nguyên có một số lẻ // các dạng bậc 2. for (x, y) in [1, √limit] × [1, √limit]: n ← 4x²+y² if (n ≤ limit) and (n mod 12 = 1 or n mod 12 = 5): is_prime(n) ← ¬is_prime(n) n ← 3x²+y² if (n ≤ limit) and (n mod 12 = 7): is_prime(n) ← ¬is_prime(n) n ← 3x²-y² if (x > y) and (n ≤ limit) and (n mod 12 = 11): is_prime(n) ← ¬is_prime(n) // loại bỏ bằng cách sàng for n in [5, √limit]: if is_prime(n): // n là số nguyên tố, bỏ qua các bội số bậc 2 của nó; điều này là // sufficient because composites which managed to get // on the list cannot be square-free is_prime(k) ← false, k ∈ {n², 2n², 3n²,..., limit} print 2, 3 for n in [5, limit]: if is_prime(n): print n