Verificatore di Mersenne
Inserisca un esponente e ottenga il valore completo di 2^p − 1 con il verdetto di primalità: 7 dà 127, un primo di Mersenne, mentre 11 dà 2047, cioè 23 × 89. Gli esponenti vanno da 2 a 10.000. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Potenza (W)
- 7
- Num. Mersenne
- 127
- Cifre decimali
- 3
Quando lo stesso Mp è primo si chiama primo di Mersenne — numeri che hanno guidato ricerche di record per secoli, dalle prime liste di Marin Mersenne ai moderni progetti distribuiti. Non ogni esponente produce un primo: se p è composto allora Mp è composto, e anche per molti esponenti primi il numero di Mersenne si fattorizza (ad esempio 2^11 − 1 = 2047 = 23 × 89). Questo strumento prende un esponente intero p almeno due, restituisce il valore decimale completo di 2^p − 1 come stringa e decide se quel valore è primo con il test deterministico di Lucas-Lehmer quando p è un primo dispari.
Cosa sono i numeri di Mersenne e come decide Lucas-Lehmer
Un numero di Mersenne è definito da un solo esponente: Mp è due elevato alla potenza p, meno uno. I primi valori sono costanti familiari in aula — M2 vale tre, M3 sette, M5 trentuno, M7 centoventisette — mentre esponenti maggiori producono interi con migliaia di cifre decimali. Un primo di Mersenne è semplicemente un numero di Mersenne che è primo.
Una condizione necessaria classica è che l’esponente p stesso sia primo: se p si fattorizza come ab con a e b maggiori di uno, allora 2^a − 1 divide 2^{ab} − 1, quindi Mp non può essere primo. Quella condizione necessaria non è sufficiente. Per p uguale a undici, che è primo, M11 vale duemilaquarantasette e si fattorizza come ventitré per ottantanove.
Il test di Lucas-Lehmer risolve completamente la questione per esponenti primi dispari. Parta da s zero uguale a quattro; per ciascuno dei successivi p meno due passi sostituisca s con s al quadrato meno due, ridotto modulo Mp. Il numero di Mersenne è primo se e solo se il residuo finale è zero.
Per il caso speciale p uguale a due il numero tre è primo per ispezione e non richiede la sequenza iterativa. Questa capacità implementa quel pipeline esatto con aritmetica BigInt: non approssima mai, non chiama mai un servizio di primalità e non dipende mai dall’orologio di parete o da bit casuali. Ottiene sempre lo stesso booleano per lo stesso p.
Dove compaiono i controlli di Mersenne nel lavoro reale
Programmatori di gara e coach di olimpiadi usano piccoli controlli di Mersenne come riscaldamento prima di problemi più duri di aritmetica modulare, e hanno bisogno di un oracolo deterministico da cui gli studenti non possano divergere accidentalmente da una formula di foglio di calcolo. Ingegneri di crittografia e sistemi a volte validano demo didattiche o tabelle storiche di primi di Mersenne noti senza rivendicare forza crittografica da una sola sequenza modulare.
Se più avanti Le servono coppie gemelle, π(n) o fattorizzazione di un composto generale, li tratti come intenzioni di ricerca separate invece di sovraccaricare questa pagina incentrata su Mersenne. I numeri di Mersenne restano la pagina giusta quando la domanda è quanto vale 2^p − 1 e se Lucas-Lehmer (o la regola dell’esponente composto) lo certifica come primo di Mersenne.
Domande frequenti
Cos’è un numero di Mersenne?
Quando quel numero è primo si chiama primo di Mersenne.
p sotto 2 causa un errore?
Il verificatore accetta solo esponenti da 2 a 10,000 inclusi.
Come funziona Lucas-Lehmer qui?
Mp è primo se e solo se il residuo finale è zero. Gli esponenti composti saltano il ciclo e sono segnalati composti.
Il risultato è deterministico?
Non c’è casualità, chiamata di rete o modello — solo aritmetica modulare BigInt e divisione di prova dell’esponente.
Quanto costa?
Lo strumento del browser è gratuito e gira in locale.
Strumenti correlati
Per sviluppatori — accesso via API
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.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/numth/mersenne-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"p":7}'const res = await fetch("https://api.kit.forhosting.com/numth/mersenne-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"p": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/mersenne-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"p": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/mersenne-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"p":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"p":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/mersenne-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"p": 7
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.mersenne_number",
"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.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
min_p | 2 |
max_p | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Un numero di Mersenne è un intero della forma speciale Mp = 2^p − 1, dove p è un esponente intero positivo.
Contratto di input, risposte di successo e modalità di fallimento
Decimali, campi vuoti e stringhe non numeriche falliscono la validazione e non sono addebitati. Invii un campo intero obbligatorio p (sono accettati gli alias exponent e power). Il valore deve essere almeno due — esponenti sotto due sono rifiutati con invalid_input così i moduli mostrano un chiaro errore di limite — e al massimo diecimila perché il quadrato modulare resti nei budget di Worker e browser. In successo il JSON riporta p, la stringa decimale completa mersenne per due alla p meno uno, decimal_digits come il conteggio di cifre di quella stringa, p_is_prime per l’esponente, is_mersenne_prime per Mp, e method che descrive quale percorso ha girato: special_case_p2 per il tre classico, composite_exponent quando p è composto (Mp è allora noto composto senza iterare Lucas-Lehmer), o lucas_lehmer quando p è un primo dispari. Controlli puntuali di cui può fidarsi senza aprire un manuale: p uguale a sette produce mersenne centoventisette e is_mersenne_prime true; p uguale a undici produce duemilaquarantasette e false; p uguale a quattro produce mersenne quindici con composite_exponent e false; p uguale a uno fallisce la validazione. Il prezzo API è la base pubblicata di $0.002 per articolo riuscito; la validazione fallita non consuma saldo.
Dove compaiono i controlli di Mersenne nel lavoro reale
Poiché la capacità è un motore di parse puro, lo stesso p produce sempre lo stesso JSON senza dipendenza di rete né stato memorizzato. Usi l’esecutore gratuito del browser per compiti ed esplorazione, poi chiami l’API da script e integrazione continua quando ha bisogno di controlli massivi con saldo prepagato.
Casi di integrazione
Compiti e riscaldamenti da olimpiade
Calcoli Mp = 2^p − 1 per esponenti di aula e verifichi quali valori sono primi di Mersenne con una chiave di risposta deterministica Lucas-Lehmer.
Fixture deterministici per demo di teoria dei numeri
Generi campi stabili mersenne e is_mersenne_prime per diapositive, test unitari e documentazione senza mantenere a mano grandi stringhe decimali.
Controlli di Mersenne adatti alle pipeline
Chiami lo stesso contratto isomorfo da script e CI così le asserzioni di primalità di Mersenne non dipendano mai da un modulo web occasionale o da un modello di linguaggio.