Cách Kiểm Tra Số Nguyên Tố

  -  

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

Hôm nay chúng ta sẽ so với phần đông thuật toán căn cơ để khám nghiệm số nguyên tố - tự "thô sơ" mang đến "hiện tại đại"!

1. Thuật toán soát sổ nguyên ổn tố là gì?

Thuật tân oán kiểm tra nguyên tố là phần đa thuật toán thù nhằm kiểm soát coi một số n có phải là số ngulặng tố hay là không. Không y hệt như thuật toán so sánh thừa số nguim tố, đánh giá nguyên ổn tố đơn giản dễ dàng rộng các về phương diện tính toán thù, bước triển khai, và thời hạn chạy.

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

Hầu hết đông đảo thuật tân oán đánh giá nguim tố sẽ chứng minh sốnliệu có phải là đúng theo số hay là không, chính vì như thế tên gọi đúng mực của rất nhiều thuật tân oán những điều đó vẫn là kiểm soát phù hợp số. Tuy nhiên chúng đông đảo hướng đến một mục tiêu là search tìm những số nguim tố.

2. Những đánh giá solo giản

Dựa vào quan niệm của số nguim tố (là số chỉ phân chia hết cho 1 với chủ yếu nó), ta sẽ sở hữu được thuật tân oán kiểm ngulặng tố đơn giản dễ dàng nhất:

Kiểm tra các số trường đoản cú 2 mang lại n - 1, trường hợp n phân chia hết cho 1 trong những số kia thì n chưa hẳn là số ngulặng tố. Ngược lại thì n là số ngulặng tố.

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

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

Kiểm tra những số từ 2 đến √n, trường hợp n phân chia không còn cho một Một trong những số đó thì n chưa phải là số nguim tố. Ngược lại thì n là số ngulặng tố.

ĐPT: O(√n)

Tuy nhiên, chúng ta còn hoàn toàn có thể cách tân và phát triển tiếp thuật tân oán bên trên bằng phương pháp minh chứng nko phân tách hết cho phần lớn số nguyên tố nhỏ hơn nó.

Để ý rằng toàn bộ đa số số ngulặng tố to hơn 3 đều phải sở hữu dạng 6k± 1(vày 6k,6k± 2,là số đông số chẵn; 6k + 3chia hết mang lại 3). Vậy cách thức kiểm soát hôm nay sẽ là:

Kiểm tra những số gồm dạng6k ± 1 tự 2 mang lại √n, trường hợp n phân tách hết cho một Một trong những số kia thì n không phải là số ngulặng tố. trái lại thì n là số nguyên tố.

// pseudocode - mã mang đến phương thức đánh giá ngulặng tố trênfunction is_prime(n) if n ≤ 3 then return n > 1 else if n mod 2 = 0 or n gian lận 3 = 0 return false let i = 5 while i × i ≤ n do 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 trường đoản cú i = 5 (tất cả dạng 6k - 1), chất vấn n chia i cùng n chia i + 2, và tăng i lên 6 sau từng bước. Bởi vậy ta hoàn toàn có thể chăm bẵm toàn bộ những số tất cả dạng6k± 1ko quá quá√n.

ĐPT:O(√n / 6)(cũng chính là O(√n), dẫu vậy nkhô hanh rộng vài ba mili giây)

Bây giờ, cầm cố vì chưng 6, bạn cũng có thể thực hiện 30. Ttuyệt vày 30, bạn có thể thực hiện tích của n số nguyên tố đầu tiên.

Thế nhưng lại phương pháp này vẫn không đủ mặc dù chỉ so với mọi số nguim 64 bit. Vì vậy nên chúng ta cần những phương pháp dũng mạnh hơn với ĐPT thấp hơn.

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

Thường thì các soát sổ nguim tố táo bạo đang hoạt động vào thời gian log n, đó là cũng chính vì phần lớn phần đa phép thử nguim tố dễ dàng sau đa số chạy trong thời hạn nlắp tốt nhất là log n:

Nếu p là một trong những nguim tố thì:

fp + 1≡ 0 (hack p) (cùng với fp + 1 là số Fibonacci sản phẩm công nghệ p + 1 với p có dạng 5k± 2)

Tuy nhiên, chỉ đối chọi thuần thực hiện mọi phép demo trên sẽ không hỗ trợ họ kết luận được số vẫn test là số nguim tố.

Xem thêm: Hướng Dẫn 2 Cách Thắt Dây Đeo Tay Bằng Chỉ, Cách Thắt Vòng Đeo Tay Bằng Dây Dù

Ngoài ra còn phxay thử: (p - 1)! ≡ -1 (hack p)khi và chỉ còn khipnguim tố. Đây là nội dung của định lí Wilson, nhưng lại việc tính tân oán biểu thức(n - 1)! % nsẽ có được ĐPT lớn hơnlog n.

Trên thực tiễn, trong phần đông ngôi trường hòa hợp, họ chỉ việc phép test trước tiên cho những kiểm tra "sừng sỏ" mình sẽ trình làng sau đây.

4. Những soát sổ xác suất

Chúng được hotline là "xác suất" vì sau khoản thời gian bình chọn, bọn họ cần thiết thực sự chắc chắn liệu nbao gồm ngulặng tố hay không tựa như những cách thức dễ dàng trên. Tuy nhiên, bọn chúng lại được dùng nhiều hơn thế nữa các cách thức bảo vệ độ chắc chắn rằng bởi vận tốc tiến hành 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ế không phải là số nguyên ổn tố được gọi là những số "trả nguyên ổn tố".

Kiểm tra Fermat

Đây là chất vấn xác suất đơn giản dễ dàng độc nhất vô nhị. Nó trực tiếp áp dụng định lí Fermat nhỏ:

Chọn số a thế nào 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, mặc dù 341 là thích hợp số (341 = 11 x 31), đẳng thức sau vẫn đúng:2341 - 1≡ 1 (thủ thuật 341). Vì vậy, càng các số a đúng với đẳng thức trên, tài năng n là số nguyên ổn tố càng tăng. Tuy nhiên, vẫn đang còn phần đông phù hợp số n vừa lòng đẳng thứcan - 1≡ 1 (gian lận n)với mọi số anguim tố với mọi người trong nhà vớin, như số 561. Những số như thế Call là số Carmichael.

Kiểm tra Miller-Rabin

Đây là kiểm soát rườm rà rộng mà lại chắc thêm kiểm soát Fermat, bởi vì đó là kiểm soát số đưa nguyên tố bạo phổi. Kiểm tra này chuyển động như sau:

Chọn 1 số a bất kỳ nhỏ tuổi hơn n. Giả sử n - 1 = 2sd với d lẻ. Nếu:

ad≠ 1 (thủ thuật n)a(2 ^ r)d≠ -1 (hack n) (^ là kí hiệu phnghiền lũy quá, không hẳn phnghiền XOR đâu)

thì nlà hòa hợp số. trái lại,n tất cả thểlà số nguim tố.

Kiểm tra Solovay-Strassen

Kiểm tra này tinh vi rộng dẫu vậy lại yếu rộng kiểm tra Miller-Rabin.

Chọn 1 số ít a bất kể nhỏ hơn n. Nếu

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

Ngoài hầu như soát sổ Xác Suất phổ biến bên trên, còn phần đa khám nghiệm khác tinh vi hơn như là khám nghiệm Frobenius tốt bình chọn Baillie-PSW. Ta cũng rất có thể sử dụng bên cạnh đó các chất vấn trên nhằm tăng tính đúng chuẩn của thuật toán thù. ví dụ như nlỗi khám nghiệm Baillie-PSW sử dụng bình chọn Miller-Rabin cùng đánh giá Phần Trăm Lucas.

Xem thêm: Cách Đánh Số Trang Tu Dong Trong Word 2007, 2010, 2013, 2016

Tạm kết

Trên đó là mọi phương pháp thịnh hành để kiểm soát tính ngulặng tố của một số. Mặc mặc dù thực hiện chúng cần thiết góp chúng ta kiếm được số nguyên tố lớn nhất hiện thời, bọn chúng có vẻ thừa đủ để cung cấp chúng ta trong số những vụ việc lập trình sẵn mỗi ngày.