Stavo leggendo CLRS e mi chiedeva di mostrare che se è un numero primo della forma e era un residuo quadratico, allora è una radice quadrata (si può anche facilmente dimostrare che è una radice quadrata).
Mi chiedevo se usando il fatto precedente e anche che sapevamo di avere un numero della forma (non necessariamente primo), allora forse c'è un diverso test di primalità per (qualsiasi?) usando la funzione radice quadrata (ovvero ).
Quindi l'algoritmo che pensavo fosse il seguente:
Scegli un residuo quadratico (QR) (puoi farlo facilmente controllando se a ^ {\ frac {p-1} {2}} \ equiv 1 \ pmod p ). Una volta che abbiamo un QR, calcola a ^ {k + 1} = x_a e controlla se x_a ^ 2 è uguale a a . Se è vero, allora concludiamo che a è primo. Altrimenti, scegliamo un QR diverso a '\ in \ mathbb {Z} ^ * _ N e ripetiamo l'algoritmo. Si può ripetere questo algoritmo k volte. Se dopo k volte non c'è successo, concludi che il numero è composto.
Ho principalmente intuizioni sul perché sia una prova corretta ma non formale. Dal primo fatto che è una radice quadrata quando è primo, deve significare che . Pertanto, se è un QR, quel controllo passerà (metà del tempo sceglieremo un QR, quindi probabilmente il fatto che scegliamo un non QR è solo 1/2).
Tuttavia, se è composito, sembra che abbiamo alcuna garanzia che . Quindi se non regge siamo sicuri che non sia un numero primo. Ma se regge allora se il suo primo è giusto, ma se il suo composito potremmo essere sbagliato? Fondamentalmente, è possibile usare la funzione SQRT quando per decidere se è primo o no?
Ho anche pensato a un altro algoritmo che meritava una sua domanda: il calcolo di una radice quadrata di un numero e avere più di 2 radici è un modo affidabile per decidere la primalità?