Trong đời sống, số nguyên tố được ứng dụng trong rất nhiều lĩnh vực của chúng ta. Nhờ vào tính chất số học của mình, nó đã được sử dụng nhiều trong lĩnh vực mã hóa, bảo mật, cũng như trong một số thuật toán tạo số ngẫu nhiên, bảng băm, hay trong giải thuật mã hóa RSA...Nhưng quan trọng nhất vẫn là làm sao để chúng ta biết được một số nào đó có phải là số nguyên tố? Vì vậy trong bài viết hôm nay chúng ta sẽ cùng điểm qua một số cách để kiểm tra tính nguyên tố của một số bất kì.
Lưu ý: các thuật toán trong bài viết này được sắp xếp theo độ phực tạp thời gian giảm dần.
1. Số nguyên tố là gì?
Số nguyên tố là số tự nhiên lớn hơn 1 không phải là tích của hai số tự nhiên nhỏ hơn. Nói cách khác, số nguyên tố là những số chỉ có đúng hai ước số là 1 và chính nó.Tất cả số nguyên tố lớn hơn 3 đều có thể biểu diễn dưới dạng 6k ± 1.
Ngoại trừ số 2 các số nguyên tố lớn hơn đều là số lẻ.
2. Môt số giải thuật kiểm tra số nguyên tố n:
- Giải thuật đơn giản O(n):
- Giải thuật chia thử O(√n):
- Cải tiến giải thuật chia thử O(√n):
- Sàng nguyên tố Eratosthenes O(nlogn):
Nguyên lý hoạt động của thuật toán này khá đơn giản:
+Đầu tiên ta sẽ dựng nên một sàng gồm các số tự nhiên từ 1 đến N
+Sau đó vào mỗi lần duyệt sàng ta sẽ chọn một số nguyên tố và loại ra khỏi sàng tất cả các bội của số nguyên tố đó mà lớn hơn số đó. Sau khi duyệt xong các số trong sàng sẽ đều là các số nguyên tố bé hơn N
Sau khi xây dựng sàn việc kiểm tra 1 số trong khoảng từ đến N có phải là số nguyên tố hay không chỉ mất O(1).
- Thuật toán Fermat:
- Thuật toán MillerRabin:
Nhận xét
Đăng nhận xét