Kiem tra tinh nguyen to (tieng Anh: primality test) la bai toan kiem tra xem mot so tu nhien 
  
    
      
        n
      
    
    {\displaystyle n}
  
 co phai la so nguyen to hay khong. Bai toan nay đac biet tro nen quan trong khi cac he mat ma khoa cong khai ra đoi.


Cac phuong phap tho so Phuong phap đon gian nhat đe kiem tra mot so 
  
    
      
        n
      
    
    {\displaystyle n}
  
 co la so nguyen to khong la kiem tra xem no co chia het cho cac so 
  
    
      
        m
      
    
    {\displaystyle m}
  
 nam trong khoang 2 đen 
  
    
      
        n
        −
        1
      
    
    {\displaystyle n-1}
  
 hay khong. Neu 
  
    
      
        n
      
    
    {\displaystyle n}
  
 chia het cho mot so 
  
    
      
        m
      
    
    {\displaystyle m}
  
 nao đo thi 
  
    
      
        n
      
    
    {\displaystyle n}
  
 la hop so (composite), nguoc lai 
  
    
      
        n
      
    
    {\displaystyle n}
  
 la so nguyen to.
Thuc ra viec kiem tra voi 
  
    
      
        m
      
    
    {\displaystyle m}
  
 tu 2 đen 
  
    
      
        n
        −
        1
      
    
    {\displaystyle n-1}
  
 la khong can thiet, ma chi can kiem tra đen 
  
    
      
        
          
            n
          
        
      
    
    {\displaystyle {\sqrt {n}}}
  
. Đo la vi neu 
  
    
      
        n
      
    
    {\displaystyle n}
  
 la hop so thi no chac chan co uoc so khong vuot qua 
  
    
      
        
          
            n
          
        
      
    
    {\displaystyle {\sqrt {n}}}
  
.
Chung ta cung co the bo qua viec kiem tra truong hop 
  
    
      
        m
        =
        2
      
    
    {\displaystyle m=2}
  
 bang cach chi xet cac so le. Đi xa hon mot chut, ta chi can xet cac so dang 
  
    
      
        6
        k
        ±
        1
      
    
    {\displaystyle 6k\pm 1}
  
 va bo qua viec kiem tra 2 truong hop 
  
    
      
        m
        =
        2
      
    
    {\displaystyle m=2}
  
 va 
  
    
      
        m
        =
        3
      
    
    {\displaystyle m=3}
  
. Đo la vi tat ca cac so nguyen to đeu co dang 
  
    
      
        6
        k
        +
        i
      
    
    {\displaystyle 6k+i}
  
 voi 
  
    
      
        k
      
    
    {\displaystyle k}
  
 nao đo va 
  
    
      
        i
        =
        0
        ,
        ±
        1
        ,
        ±
        2
      
    
    {\displaystyle i=0,\pm 1,\pm 2}
  
; ma trong đo 
  
    
      
        6
        k
        +
        0
      
    
    {\displaystyle 6k+0}
  
, 
  
    
      
        6
        k
        +
        2
      
    
    {\displaystyle 6k+2}
  
, 
  
    
      
        6
        k
        +
        4
      
    
    {\displaystyle 6k+4}
  
 chia het cho 2, con 
  
    
      
        6
        k
        +
        3
      
    
    {\displaystyle 6k+3}
  
 thi chia het cho 3. Tiep tuc voi cac nhan xet đo, ta co the tong quat hoa thanh thuat toan sang Eratosthenes.


Kiem tra theo xac suat Cac phep kiem tra tinh nguyen to hay dung nhat la cac thuat toan ngau nhien. Gia su co mot menh đe Q(p,a) nao đo đung voi moi so nguyen to p va mot so tu nhien a <= p. Neu n la mot so tu nhien le va menh đe Q(n,a) đung voi mot a<= n đuoc lay ngau nhien, khi đo a co kha nang la mot so nguyen to. Ta đua ra mot thuat toan, ket luan rang n la so nguyen to. No la mot thuat toan ngau nhien hay thuat toan xac suat. Trong cac thuat toan loai nay, dung mot kiem tra ngau nhien khong bao gio ket luan mot so nguyen to la hop so nhung co the ket luan mot hop so la so nguyen to. Xac suat sai cua phep kiem tra co the giam xuong nho viec chon mot day đoc lap cac so a; neu voi moi so a xac suat đe thuat toan ket luan mot hop so la so nguyen to la nho hon mot nua thi sau k lan thu đoc lap, xac suat sai la nho hon 2−k, đo tin cay cua thuat toan se tang len theo k.
Cau truc co ban cua mot phep kiem tra ngau nhien la:

Chon mot so ngau nhien a.
Kiem tra mot he thuc nao đo giua so a va so n đa cho. Neu he thuc sai thi chac chan n la mot hop so (so a la "bang chung" chung to n la hop so) va dung thuat toan.
Lap lai buoc 1 cho đen khi đat đuoc so lan đa đinh hoac gap buoc 2.
Sau mot loat lan kiem tra, neu khong tim đuoc bang chung chung to n la hop so thi ta ket luan n la so nguyen to.
Cac phep kiem tra tinh nguyen to ngau nhien la

Phep kiem tra tinh nguyen to cua Fermat (kiem tra Fermat. Đay la phep thu heuristic; tuy nhien it nguoi su dung phep thu nay
Đuoc su dung nhieu hon la Kiem tra Miller-Rabin va Kiem tra Solovay-Strassen. Voi moi hop so n, it nhat 3/4 (voi kiem tra Miller-Rabin) hoac 1/2 (Voi kiem tra Solovay-Strassen) cac so a la bang chung chung to n la hop so).


Cac phep kiem tra tat đinh Vao nam 2002, Manindra Agrawal, Nitin Saxena va Neeraj Kayal đe xuat mot giai thuat tat đinh kiem tra tinh nguyen to, la kiem tra AKS, co kha nang chay trong O((log n)12). Tren thuc te thuat toan nay chay cham hon cac phuong phap xac suat.


Đo phuc tap Trong ly thuyet đo phuc tap, bai toan ve tinh nguyen to đuoc goi đon gian la bai toan nguyen to. De thay rang no la coNP: bai toan nguoc cua no, bai toan hop so la NP.
Nam 1975, Vaughan Pratt nhan thay rang ton tai cac thuat toan kiem tra tinh nguyen to trong thoi gian đa thuc, va nhu vay PRIMES la NP, va do đo thuoc ve NP ∩ coNP.
Vao nam 2002, Manindra Agrawal, Nitin Saxena va Neeraj Kayal đe xuat mot giai thuat tat đinh kiem tra tinh nguyen to, la kiem tra AKS, co kha nang chay trong O((log n)12). The cho nen PRIMES la P.


Cac phuong phap ly thuyet so Co mot vai phuong phap khac trong ly thuyet so đe kiem tra tinh nguyen to nhu kiem tra Lucas-Lehmer va kiem tra Proth. Chung thuong dua vao viec phan tich n + 1, n − 1, hoac nhung so khac. Tuy nhien cac phuong phap nay khong dung cho cac so tu nhien n bat ky ma chi cho cac so co mot dang đac biet nao đo
Kiem tra Lucas-Lehmer dua tren tinh chat: bac (multiplicative order) cua mot so a modulo n la n − 1 voi n la so nguyen to va a la can nguyen thuy (primitive root) modulo n. Neu ta co the bieu dien a chi theo n, ta co the thay n la nguyen to.


Xem them So nguyen to


Chu thich Tham khao