ForHosting KIT · Mathematik

Deterministischer Miller–Rabin-Test

97 ist prim: Die Zahl besteht alle sieben festen Basen 2, 3, 5, 7, 11, 13 und 23, die nachweislich jede ganze Zahl bis 9007199254740991 sicher entscheiden. Bei einer zusammengesetzten Zahl sehen Sie zudem die erste Basis, die sie entlarvt hat. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
N
97
Erhalten Sie
Schranke
9.007.199.254.740.991
Anzahl der Zeugen
7

Der deterministische Miller–Rabin-Test entscheidet, ob eine ganze Zahl n prim ist, indem er den starken wahrscheinlich-primen Zeugentest gegen eine kurze, feste Liste von Basen ausführt, die jede ganze Zahl unterhalb einer veröffentlichten Garantieschranke korrekt entscheiden. Im Gegensatz zu einem probabilistischen Miller–Rabin-Lauf, der zufällige Zeugen zieht und nur den Fehler schätzt, verwendet diese Fähigkeit stets dieselben Basen, liefert für dasselbe n stets dasselbe Urteil und lehnt Eingaben ab, die oberhalb der Schranke liegen, in der diese Basen nicht mehr als ausreichend bewiesen sind. Sie senden eine einzelne ganze Zahl von mindestens zwei bis höchstens zur Schranke und erhalten ein Prim-Flag, die Zeugenliste, die Schranke selbst und—wenn die Zahl zusammengesetzt ist—den ersten Zeugen, der das bewiesen hat.

So arbeitet der starke wahrscheinlich-prime Test mit festen Basen

Miller–Rabin schreibt einen ungeraden Kandidaten n um als n minus eins gleich d mal zwei hoch s mit ungeradem d und berechnet dann für jeden Zeugen a die Potenz a hoch d modulo n. Ist diese Potenz eins oder n minus eins, besteht der Zeuge. Andernfalls quadriert der Algorithmus den Wert bis zu s minus einer Mal und akzeptiert den Zeugen nur, wenn irgendein Zwischenquadrat n minus eins ergibt; jeder andere Pfad beweist, dass n für diese Basis zusammengesetzt ist.

Eine Zahl, die jeden Zeugen besteht, heißt stark wahrscheinlich prim zu diesen Basen. Für sorgfältig gewählte feste Mengen zeigen zahlentheoretische Ergebnisse, dass es unter einer bekannten Schwelle keine zusammengesetzte Zahl gibt, die alle Basen der Menge täuscht—so wird das wahrscheinlich-prime Ergebnis innerhalb der Schranke zu einem echten Primurteil. Diese Fähigkeit verwendet die sieben Basen zwei, drei, fünf, sieben, elf, dreizehn und dreiundzwanzig, die für jede 64-Bit-Ganzzahl und damit für jede sichere JavaScript-Ganzzahl bis neun Billiarden ausreichen.

Die winzigen Primzahlen zwei und drei werden als prim entschieden. Teilt ein Zeuge n und ist kleiner als n, wird dieser Zeuge als fehlgeschlagene Basis gemeldet, weil n ein offensichtliches Vielfaches ist.

Wann ein Primtest mit festen Basen hilft

Kryptographie-Kurse und CTF-Trainer nutzen einen deterministischen Miller–Rabin-Test, um Studierenden den Unterschied zwischen probabilistischen Prüfungen mit Zufallszeugen und Zertifikaten fester Basen zu zeigen, die ihre Garantieschranke in der Antwort nennen. Bibliotheksautoren verankern Unit-Tests gegen bekannte Primzahlen, starke Pseudoprimzahlen und Zusammengesetzte, damit ein Refactor der modularen Exponentiation ein Urteil nicht still umkippt. Anwendungsentwickler validieren primförmige Konfigurationswerte, Puzzle-Saaten oder Spielzeug-Diffie–Hellman-Parameter vor einer längeren Pipeline und fangen gerade Werte und kleine Zusammengesetzte ab, ohne ein Computeralgebrasystem aufzusetzen.

Bevorzugen Sie dieses Werkzeug, wenn die Suchabsicht genau der deterministische Miller–Rabin-Algorithmus mit festen Zeugen und harter Schranke ist—nicht wenn Sie den kleinsten Teiler einer Zusammengesetzten, die vollständige Primfaktorisierung, Lucas–Lehmer für Mersenne-Zahlen oder probabilistische Tests mit einer von Ihnen gelieferten benutzerdefinierten Zeugenliste brauchen.

Zertifikate fester Miller–Rabin-Basen lehren

Zeigen Sie Studierenden ein Prim- oder Zusammengesetzt-Urteil zusammen mit der genauen Zeugenliste und der Garantieschranke, damit der Unterschied zu probabilistischen Tests mit Zufallszeugen greifbar wird.

Primförmige Parameter unter einer Schranke prüfen

Lehnen Sie Konfigurationswerte, Puzzle-Saaten oder Spielzeug-Kryptomoduli ab, die festes Miller–Rabin nicht bestehen, und halten Sie den fehlgeschlagenen Zeugen in der Audit-Spur fest.

Was kostet der deterministische Miller–Rabin-Test?

Dieselbe Prüfung läuft auf dieser Seite auch kostenlos in Ihrem Browser; ungültige Eingabe wird nicht berechnet.

Welche Zahlen werden akzeptiert?

Ganze Zahlen von 2 bis zur veröffentlichten Garantieschranke 9007199254740991.

Welche Zeugenbasen werden verwendet?

Die feste Liste 2, 3, 5, 7, 11, 13 und 23. Sie werden im Feld witnesses bei jeder erfolgreichen Antwort zurückgegeben, damit Clients die Menge nie hardcodieren müssen.

Ist dies probabilistisches Miller–Rabin?

Nein. Die Basen sind fest und für jede ganze Zahl in der unterstützten Schranke als ausreichend bewiesen, sodass dasselbe n stets dasselbe deterministische Prim- oder Zusammengesetzt-Urteil erzeugt.

Was geschieht, wenn n größer als die Schranke ist?

Die Fähigkeit behauptet kein deterministisches Urteil außerhalb des Bereichs, in dem die festen Basen zertifiziert sind.

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.

POSThttps://api.kit.forhosting.com/numth/miller-rabin-deterministic

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/numth/miller-rabin-deterministic \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":97}'
{
  "n": 97
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.miller_rabin_deterministic",
  "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.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Dieselbe reine modulare Arithmetik speist den kostenlosen Browserpfad und den API-Pfad, sodass Hausaufgabenprüfungen, Krypto-Spielzeuge und Automatisierungsskripte bei einer grenzwertigen Carmichael-Zahl oder einer starken Pseudoprimzahl nie auseinanderlaufen.

Was deterministisches Miller–Rabin liefert und wie die Schranke wirkt

Jeder erfolgreiche Aufruf beantwortet vier zusammenhängende Fragen: ist n unter der Miller–Rabin-Suite mit festen Basen prim, welche Zeugenbasen wurden angewendet, welches ist die größte ganze Zahl, die diese Suite korrekt zu entscheiden garantiert, und—falls n zusammengesetzt ist—welcher Zeuge den starken wahrscheinlich-primen Test zuerst verfehlt hat. Nutzen Sie diesen Endpunkt, wenn Sie ein auditierbares deterministisches Miller–Rabin-Urteil mit Zeugenliste und Schranke im Ergebnis brauchen, nicht eine probabilistische Vermutung und nicht die vollständige Faktorisierung jedes Teilers. Die Antwort ist ein kompaktes JSON-Objekt mit einem booleschen prime-Flag, der zurückgegebenen ganzen Zahl n, einem geordneten Array witnesses, der numerischen Schranke, einem witness_count, einem Feld failing_witness (null bei Primzahlen, eine konkrete Basis bei Zusammengesetzten) und einem method-Label mit miller_rabin_deterministic, damit Clients den Algorithmuspfad protokollieren können. Fehlende, gebrochene, nicht numerische oder streng unter zwei liegende Eingaben werden mit invalid_input abgelehnt, bevor irgendeine modulare Exponentiation läuft. Werte oberhalb der veröffentlichten Garantieschranke werden ebenfalls mit invalid_input und einer Nachricht abgelehnt, die die Schranke nennt, weil eine feste Zeugenliste nur innerhalb dieses Bereichs ein mathematisches Zertifikat ist; darüber können dieselben Basen eine zusammengesetzte Zahl unentdeckt lassen. Dieser harte Abbruch ist der Produktunterschied zu einem allgemeinen Primzahlprüfer, der still die Strategie wechseln oder Primheit ohne Angabe seiner Zertifikatsgrenze behaupten könnte.

So arbeitet der starke wahrscheinlich-prime Test mit festen Basen

Gerade Zusammengesetzte werden sofort mit failing_witness zwei abgelehnt, ohne die volle Schleife.

Wo eine deterministische Miller–Rabin-API sich lohnt

Dateningenieure prüfen numerische Spalten, die Primzahlen zu sein vorgeben, und speichern das Feld failing_witness im Audit-Log, wenn eine Zeile scheitert. Weil die Fähigkeit Stufe A ist, können Sie eine Zahl auf dieser Seite einfügen und dieselbe Logik kostenlos im Browser ausführen; automatisieren Sie denselben Vertrag später zu $0.002 pro Anfrage, wenn Sie Aufgaben in Skripte oder SDKs einbinden. Halten Sie n als ganze Zahl von mindestens zwei innerhalb der veröffentlichten Schranke, behandeln Sie invalid_input als Client-Korrektur statt als erneuten Versuch, und protokollieren Sie die Felder witnesses und bound, wann immer Sie ein reproduzierbares Zertifikat dessen brauchen, was geprüft wurde.

Unit-Tests für modulare Primtests verankern

Behaupten Sie Golden-Primzahlen, Zusammengesetzte und Ablehnungen außerhalb der Schranke gegen ein stabiles deterministisches Miller–Rabin-Orakel, bevor Sie eine Änderung an einer Krypto- oder Zahlentheorie-Bibliothek ausliefern.

Vollständige KIT-Dokumentation lesen →