ForHosting KIT · Matematica

Verifica dei primi di Mersenne con Lucas-Lehmer

Indichi un esponente primo e il test di Lucas–Lehmer le dice se 2^p − 1 è primo: con 31 esegue 29 passi, termina con residuo 0 e conferma il primo 2147483647. Vede il numero esatto, non solo un sì o un no. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Potenza (W)
31
Ottiene
Numero di Mersenne
2147483647
Iterazioni
29
Resto finale
0

Questo strumento riceve un esponente primo p e stabilisce se 2^p - 1 è primo. Applica Lucas-Lehmer, il test deterministico specifico per i numeri di Mersenne, e restituisce numero esatto, iterazioni e residuo finale. Prima convalida l’esponente, poiché un esponente composto non può generare un primo di Mersenne. Lei può così distinguere una richiesta non valida da un test valido concluso con un numero composto.

Come decide il test di Lucas–Lehmer

Un numero di Mersenne ha la forma 2^p − 1 e può essere primo solo se anche l'esponente è primo. Per questo il verificatore controlla prima che l'esponente sia primo e rifiuta un esponente composto invece di rispondere falso. Poi costruisce il numero esatto e percorre la successione di Lucas–Lehmer: si parte da 4, si eleva al quadrato, si sottrae 2 e si tiene solo il resto della divisione per il numero di Mersenne. Dopo l'esponente meno 2 passi, il numero è primo esattamente quando l'ultimo resto è zero. Con l'esponente 31 servono 29 passi, il residuo finale è 0 e si ottiene il primo 2147483647.

Quando usarlo e a che cosa fare attenzione

Lo usi per confermare un esponente candidato, controllare una tabella di primi di Mersenne noti o mostrare agli studenti come quadrati successivi con resto arrivino a zero oppure no. Due equivoci sono frequenti. Un esponente primo non garantisce un risultato primo: una risposta falsa è normale e indica solo che il numero di Mersenne è composto. Un errore è un'altra cosa: l'esponente non è primo, non è intero o esce dall'intervallo da 2 a 10.000. L'esponente 2 è un caso speciale che dà 3, primo, senza alcun passo.

Scelga e convalidi l’esponente

Inserisca un intero p tra 2 e 10,000. Prima di costruire il numero, una divisione di prova deterministica conferma che p sia primo. È un requisito matematico: se p è composto, 2^p - 1 ammette una fattorizzazione algebrica.

Perciò tale input genera un errore e non un risultato falso. Falso indica invece che un esponente primo è stato verificato correttamente ma il relativo numero di Mersenne è composto. Sono rifiutati anche decimali, campi mancanti, array, testi non numerici e valori fuori dall’intervallo dichiarato.

Verificare un esponente candidato

Confermi che il numero associato a un esponente primo soddisfi esattamente il criterio di Lucas-Lehmer.

Insegnare la ricorrenza modulare

Mostri come quadrature modulari ripetute raggiungano un residuo zero oppure non nullo.

Cosa accade se p è composto?

La richiesta restituisce un errore di input perché p deve essere primo.

Un esponente primo garantisce un primo di Mersenne?

No. È necessario ma non sufficiente; decide il residuo di Lucas-Lehmer.

Il test è probabilistico?

No. Lucas-Lehmer è deterministico per numeri di Mersenne con esponente primo.

2^31 − 1 è un primo di Mersenne?

Sì. Con l'esponente 31 il verificatore costruisce 2147483647, esegue 29 passi di Lucas–Lehmer e termina con residuo 0, il che dimostra che il numero è primo.

Che cosa significa un risultato falso?

Significa che un esponente primo è stato testato correttamente e che il suo numero di Mersenne è composto. È un esito normale, diverso da un errore, che compare solo quando l'esponente non è un primo valido nell'intervallo.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/numth/mersenne-prime-check

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/numth/mersenne-prime-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"p":31}'
{
  "p": 31
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.mersenne_prime_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

min_p2
max_p10000
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Scelga e convalidi l’esponente

Sono accettati il campo p e l’alias exponent, anche come stringa intera.

Comprenda il calcolo di Lucas-Lehmer

M è primo se e solo se il residuo finale è zero. La risposta espone numero decimale, decisione, metodo, iterazioni e residuo affinché Lei possa riprodurre e controllare il calcolo. Dopo la convalida, il sistema forma M = 2^p - 1 con aritmetica BigInt esatta. Per un primo dispari parte da s = 4 e sostituisce ripetutamente s con il suo quadrato meno 2, ridotto modulo M, per p - 2 volte. Non intervengono arrotondamenti, testimoni probabilistici, rete o casualità. p = 2 produce M = 3 senza iterazioni e con residuo zero.

Interpreti e utilizzi il risultato

Non effettua ricerche illimitate: ogni richiesta valuta un solo esponente entro il limite. Poiché il risultato non cambia, nei sistemi ad alto volume è opportuno conservarlo in cache. is_prime riguarda il numero di Mersenne, non l’esponente già convalidato. Vero indica residuo finale zero; falso indica p primo ma 2^p - 1 composto. mersenne e final_residue sono stringhe decimali per evitare perdite di precisione JSON. Il browser usa la stessa logica deterministica dell’API; ogni chiamata automatizzata costa $0.002.

Creare fixture deterministiche

Generi valori, conteggi e residui stabili per convalidare un’altra implementazione.

Perché numero e residuo sono stringhe?

Possono superare la precisione intera di JSON; le stringhe preservano ogni cifra.

Quanto costa una verifica API?

Ogni richiesta costa $0.002. La versione browser usa lo stesso calcolo puro.

Leggi la documentazione completa del KIT →