Mersenne-Primzahl mit Lucas-Lehmer prüfen
Geben Sie einen primen Exponenten an, und der Lucas–Lehmer-Test sagt Ihnen, ob 2^p − 1 prim ist: Bei 31 läuft er 29 Schritte, endet mit dem Rest 0 und bestätigt die Primzahl 2147483647. Sie sehen die exakte Zahl, nicht nur Ja oder Nein. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Leistung (W)
- 31
- Mersenne-Zahl
- 2147483647
- Iterationen
- 29
- Endrest
- 0
Dieser Prüfer übernimmt einen Primzahlexponenten p und entscheidet, ob 2^p - 1 prim ist. Er nutzt den speziell für Mersenne-Zahlen bestimmten, deterministischen Lucas-Lehmer-Test und liefert die exakte Zahl, die Anzahl der Iterationen sowie den Endrest. Zuerst wird p geprüft, denn ein zusammengesetzter Exponent kann keine Mersenne-Primzahl ergeben. So unterscheiden Sie eine ungültige Anfrage von einem gültigen Test mit zusammengesetztem Ergebnis.
Wie der Lucas–Lehmer-Test entscheidet
Eine Mersenne-Zahl hat die Form 2^p − 1 und kann nur prim sein, wenn auch der Exponent prim ist. Deshalb prüft der Rechner zuerst, ob der Exponent prim ist, und lehnt einen zusammengesetzten ab, statt Nein zu antworten. Danach bildet er die exakte Zahl und durchläuft die Lucas–Lehmer-Folge: Man beginnt mit 4, quadriert, zieht 2 ab und behält nur den Rest der Division durch die Mersenne-Zahl. Nach Exponent minus 2 Schritten ist die Zahl genau dann prim, wenn der letzte Rest null ist. Beim Exponenten 31 sind das 29 Schritte, der Endrest 0 und die Primzahl 2147483647.
Wann er hilft und worauf Sie achten sollten
Nutzen Sie ihn, um einen Kandidaten für den Exponenten zu bestätigen, eine Tabelle bekannter Mersenne-Primzahlen zu prüfen oder Lernenden zu zeigen, wie wiederholtes Quadrieren mit Rest bei null landet oder nicht. Zwei Verwechslungen sind häufig. Ein primer Exponent garantiert kein primes Ergebnis; ein Nein ist normal und heißt nur, dass die Mersenne-Zahl zusammengesetzt ist. Eine Fehlermeldung ist etwas anderes: Der Exponent ist nicht prim, nicht ganzzahlig oder liegt außerhalb von 2 bis 10.000. Der Exponent 2 ist ein Sonderfall und ergibt 3, prim und ohne einen einzigen Schritt.
Exponent auswählen und validieren
Geben Sie eine ganze Zahl p zwischen 2 und 10,000 ein. Vor der Berechnung bestätigt eine deterministische Probedivision, dass p prim ist. Das ist eine mathematische Voraussetzung: Bei zusammengesetztem p besitzt 2^p - 1 eine algebraische Faktorisierung.
Daher führt eine solche Eingabe zu einem Fehler statt zum Ergebnis falsch. Falsch bedeutet, dass ein Primzahlexponent korrekt geprüft wurde, seine Mersenne-Zahl jedoch zusammengesetzt ist. Dezimalwerte, fehlende Felder, Arrays, nichtnumerischer Text und Werte außerhalb der veröffentlichten Grenzen werden ebenfalls eindeutig abgelehnt.
Lucas-Lehmer-Berechnung verstehen
M ist genau dann prim, wenn der letzte Rest null ist. Rundung, probabilistische Zeugen, Netzwerkdienste und Zufall kommen nicht vor. Die Antwort nennt die vollständige Dezimalzahl, Entscheidung, Methode, Iterationszahl und den Endrest, sodass Sie die Rechnung reproduzieren und prüfen können.
Anwendungsfälle
Kandidaten prüfen
Bestätigen Sie, ob die Mersenne-Zahl eines Primzahlexponenten das Lucas-Lehmer-Kriterium erfüllt.
Modulare Rekursion vermitteln
Zeigen Sie, wie wiederholtes modulares Quadrieren bei null oder einem anderen Rest endet.
Deterministische Testdaten erstellen
Erzeugen Sie stabile Werte, Iterationszahlen und Reste zur Prüfung einer Implementierung.
Häufige Fragen
Was geschieht bei zusammengesetztem p?
Die Anfrage liefert einen Eingabefehler, weil p eine Primzahl sein muss.
Garantiert ein Primzahlexponent eine Mersenne-Primzahl?
Nein. Er ist notwendig, aber nicht hinreichend; der Lucas-Lehmer-Rest entscheidet.
Ist der Test probabilistisch?
Nein. Lucas-Lehmer ist für Mersenne-Zahlen mit Primzahlexponenten deterministisch.
Ist 2^31 − 1 eine Mersenne-Primzahl?
Ja. Mit dem Exponenten 31 entsteht 2147483647, der Test läuft 29 Lucas–Lehmer-Schritte und endet mit dem Rest 0. Damit ist bewiesen, dass die Zahl prim ist.
Was bedeutet ein negatives Ergebnis?
Es bedeutet, dass ein primer Exponent korrekt geprüft wurde und seine Mersenne-Zahl zusammengesetzt ist. Das ist ein normales Ergebnis, anders als eine Fehlermeldung, die nur erscheint, wenn der Exponent keine gültige Primzahl im Bereich ist.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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}'const res = await fetch("https://api.kit.forhosting.com/numth/mersenne-prime-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"p": 31
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/mersenne-prime-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"p": 31
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/mersenne-prime-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"p":31}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"p":31}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/mersenne-prime-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"p": 31
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.mersenne_prime_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
min_p | 2 |
max_p | 10000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Exponent auswählen und validieren
Akzeptiert werden das Feld p und der Alias exponent, auch als ganzzahlige Zeichenfolge.
Lucas-Lehmer-Berechnung verstehen
Nach der Validierung bildet das System M = 2^p - 1 mit exakter BigInt-Arithmetik. Für eine ungerade Primzahl p startet es mit s = 4 und ersetzt s genau p - 2 Mal durch sein Quadrat minus 2, reduziert modulo M. Für p = 2 gilt M = 3 ohne Iteration und mit Rest null.
Ergebnis richtig verwenden
Da ein Ergebnis unveränderlich ist, sollten Systeme mit hohem Volumen es zwischenspeichern. is_prime bezieht sich auf die Mersenne-Zahl, nicht auf den bereits geprüften Exponenten. Wahr bedeutet Endrest null; falsch bedeutet, dass p prim, 2^p - 1 aber zusammengesetzt ist. mersenne und final_residue sind Dezimalzeichenfolgen, damit JSON keine Genauigkeit verliert. Es ist keine unbegrenzte Suche: Pro Anfrage wird ein Exponent innerhalb des Limits bewertet. Im Browser läuft dieselbe deterministische Logik wie über die API; ein automatisierter Aufruf kostet $0.002.
Technische Fragen
Warum sind Zahl und Rest Zeichenfolgen?
Sie können die exakte Ganzzahlgenauigkeit von JSON überschreiten; so bleiben alle Ziffern erhalten.
Was kostet eine API-Prüfung?
Jede Anfrage kostet $0.002. Die Browserversion verwendet dieselbe reine Berechnung.