CÁCH TÌM SỐ NGUYÊN TỐ

Kiểm tra coi một số n có phải là số nguyên tố hay không vốn là một trong những bài bác tân oán đơn giản dễ dàng họ gần như tiếp xúc từ bỏ Lúc new bập bẹ gần như bài bác toán lập trình sẵn trước tiên. Tuy nhiên, nhằm thỏa mãn nhu cầu những yêu cầu vĩ đại của những ngành khoa học máy vi tính hiện thời như cryptography - mật mã hóa, phần đông thuật toán thù chất vấn số ngulặng tố cần phải thừa xa giới hạn 32 bit nhỏ tuổi nhoi nhưng mà bình thường bọn họ thường được sử dụng.

Hôm ni bọn họ đã phân tích số đông thuật toán nền tảng để soát sổ số nguim tố - trường đoản cú "thô sơ" đến "hiện tại đại"!

1. Thuật tân oán kiểm soát nguyên tố là gì?

Thuật tân oán khám nghiệm nguyên tố là số đông thuật tân oán nhằm đánh giá xem một vài n có phải là số nguyên tố hay là không. Không y hệt như thuật tân oán đối chiếu vượt số nguyên tố, bình chọn ngulặng tố đơn giản dễ dàng hơn nhiều về khía cạnh tính toán, bước tiến hành, cùng thời gian chạy.

Bạn đang xem: Cách tìm số nguyên tố

Hầu hết phần đa thuật tân oán bình chọn nguyên tố sẽ chứng minh sốncó phải là hợp số hay không, vì thế tên thường gọi đúng mực của những thuật toán điều này vẫn là kiểm soát thích hợp số. Tuy nhiên bọn chúng gần như hướng đến một phương châm là tra cứu tìm phần nhiều số nguyên ổn tố.

2. Những kiểm soát đơn giản

Dựa vào định nghĩa của số ngulặng tố (là số chỉ chia không còn cho một và chủ yếu nó), ta sẽ có được thuật toán thù kiểm nguyên tố dễ dàng nhất:

Kiểm tra những số từ bỏ 2 đến n - 1, nếu n chia hết cho một giữa những số kia thì n chưa phải là số nguyên ổn tố. trái lại thì n là số ngulặng tố.

Độ tinh vi thời hạn (ĐPT) của thuật toán thù bên trên là O(n)

Tuy nhiên, hệt như thuật toán đếm số ước củan, ta trọn vẹn hoàn toàn có thể đổi mới để bớt ĐPT:

Kiểm tra các số trường đoản cú 2 mang đến √n, ví như n phân chia không còn cho một Một trong những số kia thì n không phải là số nguyên tố. trái lại thì n là số nguyên tố.

ĐPT: O(√n)

Tuy nhiên, chúng ta còn hoàn toàn có thể cải tiến và phát triển tiếp thuật tân oán bên trên bằng cách chứng minh nko phân tách hết mang đến các số nguim tố nhỏ hơn nó.

Để ý rằng tất cả đầy đủ số nguyên ổn tố lớn hơn 3 đều có dạng 6k± 1(vị 6k,6k± 2,là đầy đủ số chẵn; 6k + 3chia hết đến 3). Vậy phương pháp kiểm tra hôm nay đã là:

Kiểm tra những số tất cả dạng6k ± 1 tự 2 mang đến √n, giả dụ n phân tách hết cho một trong số những số kia thì n không phải là số nguyên ổn tố. trái lại thì n là số nguyên ổn tố.

// pseudocode - mã trả đến phương thức kiểm soát nguim tố trênfunction is_prime(n) if n ≤ 3 then return n > 1 else if n mod 2 = 0 or n thủ thuật 3 = 0 return false let i = 5 while i × i ≤ n vày if n % i = 0 or n % (i + 2) = 0 return false i = i + 6 return trueĐể ý rằng chúng ta bắt đầu vòng lặp tự i = 5 (tất cả dạng 6k - 1), kiểm tra n phân tách i với n phân chia i + 2, và tăng i lên 6 sau từng bước. do vậy ta hoàn toàn có thể chú tâm tất cả những số bao gồm dạng6k± 1ko quá quá√n.

ĐPT:O(√n / 6)(cũng chính là O(√n), tuy nhiên nhanh rộng vài ba mili giây)

Bây tiếng, cố vị 6, bạn cũng có thể áp dụng 30. Txuất xắc vì chưng 30, chúng ta có thể thực hiện tích của n số ngulặng tố thứ nhất.

Thế tuy nhiên phương thức này vẫn chưa đủ cho dù chỉ đối với phần đông số nguyên ổn 64 bit. Vì thế cho nên bọn họ cần những phương pháp bạo gan hơn với ĐPT rẻ hơn.

3. Những phnghiền test nền tảng

Thường thì các kiểm tra nguyên tố dạn dĩ vẫn chuyển động trong thời hạn log n, chính là cũng chính vì hầu như những phép demo nguyên ổn tố dễ dàng sau đều chạy vào thời gian nđính thêm độc nhất vô nhị là log n:

Nếu p là một vài nguim tố thì:

fp + 1≡ 0 (hack p) (với fp + 1 là số Fibonacci máy p + 1 với p gồm dạng 5k± 2)

Tuy nhiên, chỉ đối chọi thuần sử dụng phần đa phnghiền demo trên đã không giúp bọn họ Tóm lại được số vẫn thử là số nguim tố.

Xem thêm: Cách Làm Các Món Ngon Từ Trứng, 7 Món Ngon Dễ Làm Từ Trứng Gà

Hình như còn phép thử: (p - 1)! ≡ -1 (hack p)lúc và chỉ khipngulặng tố. Đây là ngôn từ của định lí Wilson, dẫu vậy việc tính toán thù biểu thức(n - 1)! % nsẽ sở hữu được ĐPT bự hơnlog n.

Trên thực tế, vào đa số trường hợp, họ chỉ cần phxay test trước tiên cho những khám nghiệm "sừng sỏ" bản thân đã giới thiệu tiếp sau đây.

4. Những chất vấn xác suất

Chúng được Điện thoại tư vấn là "xác suất" do sau khoản thời gian khám nghiệm, chúng ta chẳng thể thực thụ chắc chắn rằng liệu ntất cả ngulặng tố hay là không như những phương thức dễ dàng trên. Tuy nhiên, bọn chúng lại được dùng nhiều hơn hồ hết cách thức bảo vệ độ chắc chắn vì chưng tốc độ triển khai của bọn chúng.

Những số thừa qua chất vấn Tỷ Lệ nhưng mà bên trên thực tế chưa hẳn là số ngulặng tố được call là đông đảo số "mang nguim tố".

Kiểm tra Fermat

Đây là đánh giá xác suất dễ dàng duy nhất. Nó trực tiếp thực hiện định lí Fermat nhỏ:

Chọn số a sao để cho (a, n) = 1. Nếuan - 1 ≠ 1 (mod n)thì nlà phù hợp số. Ngược lại,ngồm thểlà số nguyên ổn tố.

Với a = 2, n = 341, dù 34một là thích hợp số (341 = 11 x 31), đẳng thức sau vẫn đúng:2341 - 1≡ 1 (hack 341). Vì vậy, càng các số a đúng cùng với đẳng thức trên, kĩ năng n là số ngulặng tố càng tăng. Tuy nhiên, vẫn đang còn số đông vừa lòng số n thỏa mãn nhu cầu đẳng thứcan - 1≡ 1 (gian lận n)với tất cả số anguim tố bên nhau vớin, nhỏng số 561. Những số những điều đó Điện thoại tư vấn là số Carmichael.

Kiểm tra Miller-Rabin

Đây là đánh giá lướt thướt rộng nhưng chắc chắn thêm soát sổ Fermat, bởi đó là đánh giá số đưa nguim tố bạo gan. Kiểm tra này hoạt động nhỏng sau:

Chọn một số ít a bất cứ nhỏ tuổi rộng n. Giả sử n - 1 = 2sd với d lẻ. Nếu:

ad≠ 1 (mod n)a(2 ^ r)d≠ -1 (thủ thuật n) (^ là kí hiệu phxay lũy vượt, chưa hẳn phép XOR đâu)

thì nlà vừa lòng số. Ngược lại,n có thểlà số nguyên tố.

Kiểm tra Solovay-Strassen

Kiểm tra này tinh vi hơn dẫu vậy lại yếu ớt hơn khám nghiệm Miller-Rabin.

Chọn 1 số a bất kỳ nhỏ dại hơn n. Nếu

*
thìnlà phù hợp số. Ngược lại,n bao gồm thểlà số nguim tố. (vế bắt buộc làkí hiệu Jacobi)

Ngoài những kiểm tra xác suất phổ biến trên, còn các chất vấn không giống phức tạp hơn như đánh giá Frobenius xuất xắc kiểm tra Baillie-PSW. Ta cũng rất có thể sử dụng mặt khác các kiểm soát bên trên nhằm tăng tính chính xác của thuật toán. lấy một ví dụ nlỗi soát sổ Baillie-PSW thực hiện kiểm tra Miller-Rabin và chất vấn phần trăm Lucas.

Tạm kết

Trên đấy là hồ hết phương pháp phổ cập để kiểm soát tính nguyên ổn tố của một số trong những. Mặc mặc dù sử dụng bọn chúng cần thiết giúp họ kiếm được số nguyên ổn tố lớn số 1 bây chừ, chúng có vẻ như quá đầy đủ để cung cấp bọn họ giữa những sự việc xây dựng từng ngày.