Quadratische Nichtreste mod p
Listet jeden Rest auf, der modulo einer ungeraden Primzahl nie ein Quadrat ist: Modulo 7 sind die Quadrate 1, 2 und 4, die Nichtreste also 3, 5 und 6. Die Anzahl ist immer (p − 1)/2, eine eingebaute Probe. 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)
- 7
- Nichtreste
- 3, 5, 6
- Anzahl
- 3
- Anzahl der Reste
- 3
- Erwartete Anzahl
- 3
Ein quadratischer Nichtrest modulo einer ungeraden Primzahl p ist eine von null verschiedene Restklasse a, für die die Kongruenz x zum Quadrat kongruent a modulo p keine ganzzahlige Lösung besitzt. Für jede ungerade Primzahl ist genau die Hälfte der von null verschiedenen Klassen Reste und die andere Hälfte Nichtreste; die vollständige Liste der Nichtreste ist daher eine konstruktive Antwort und kein bloßes Ja oder Nein. Studierende, Wettbewerbsprogrammierer und Lernende der Kryptographie benötigen oft die gesamte Menge für Tabellen, stichprobenartige Legendre-Symbol-Prüfungen und Lehrbeispiele, bevor sie schwerere Verfahren zur modularen Quadratwurzel aufrufen. Diese Fähigkeit nimmt eine einzige ungerade Primzahl p entgegen, prüft die Primzahl-Eigenschaft, markiert jede Quadratklasse durch einen deterministischen Durchlauf und liefert die sortierte Liste der Nichtreste von eins bis p minus eins zusammen mit den theoretischen Anzahlen.
Was ein quadratischer Nichtrest ist
Rechnet man modulo einer ungeraden Primzahl p, bleiben beim Teilen nur die Reste 0 bis p − 1 übrig. Manche davon entstehen, wenn man eine ganze Zahl quadriert und durch p teilt: Das sind die quadratischen Reste. Alle übrigen von null verschiedenen Reste heißen Nichtreste, denn keine Zahl im Quadrat trifft sie. Modulo 7 ergeben die Quadrate nur 1, 2 und 4, deshalb sind 3, 5 und 6 Nichtreste. Das Legendre-Symbol beantwortet diese Frage für eine einzelne Zahl mit plus oder minus eins, diese Liste zeigt dagegen die ganze Menge auf einmal.
Wie die Liste entsteht und typische Fehler
Der Rechner prüft zuerst, ob p wirklich eine ungerade Primzahl zwischen 3 und 100.000 ist. Danach markiert er jeden Rest, der als Quadrat vorkommt, und gibt die nicht markierten aufsteigend aus. Zur Kontrolle stehen daneben die Zahl der Reste und die erwartete Anzahl (p − 1)/2. Häufige Fehler sind, die 0 mitzuzählen, eine zusammengesetzte Zahl wie 9 oder 15 zu verwenden oder die 2 einzugeben: Solche Eingaben werden abgelehnt, statt eine falsche Tabelle zu liefern.
Quadratische Nichtreste und warum die Liste die Hälfte von 1..p−1 ist
Fixieren Sie eine ungerade Primzahl p. Für jede durch p nicht teilbare ganze Zahl a hat das Polynom X zum Quadrat minus a im Körper der ganzen Zahlen modulo p entweder zwei Wurzeln oder keine. Klassen mit Wurzeln sind die von null verschiedenen quadratischen Reste; Klassen ohne Wurzeln sind die quadratischen Nichtreste.
Null ist stets ein Quadrat (Null zum Quadrat), und Lehrbücher behandeln sie üblicherweise getrennt von der Partition in von null verschiedene Reste und Nichtreste. Die multiplikative Struktur erzwingt ein perfektes Gleichgewicht: die Abbildung, die x auf x zum Quadrat in der multiplikativen Gruppe der Ordnung p minus eins sendet, ist zwei-zu-eins auf eine Untergruppe vom Index zwei, sodass es genau (p minus eins) durch zwei Reste und dieselbe Anzahl Nichtreste gibt.
Klassische kleine Tabellen bestätigen die Anzahl: modulo sieben sind die von null verschiedenen Quadrate eins, zwei und vier, also sind die Nichtreste drei, fünf und sechs; modulo elf sind die Nichtreste zwei, sechs, sieben, acht und zehn. Das Legendre-Symbol codiert dieselbe Partition als plus eins oder minus eins, aber ein einzelnes Symbol zählt die gesamte Menge nicht auf.
Wo vollständige Nichtrest-Listen in der Praxis vorkommen
Wettbewerbsprogrammierer nutzen die Menge als Orakel, wenn sie Generatoren bauen, die Nichtreste für Hash-Tests oder Gegenbeispiele zu naiven Quadratwurzel-Vermutungen ziehen. Kryptographie-Studierende prüfen Lehrbuchaussagen über die Größe der Nichtrest-Menge, bevor sie quadratische Reziprozität, das Euler-Kriterium oder Rabin-ähnliche Chiffren studieren, die von der Reststruktur abhängen. Ingenieure, die Eigenschaftstests für modulare Arithmetik-Helfer schreiben, können behaupten, dass das Komplement ihres Restfinders mit dieser Liste für jede ungerade Primzahl bis zu einer bescheidenen Schranke übereinstimmt.
Wenn Sie nur ein Legendre-Symbol oder ein Ja-oder-Nein für ein a modulo einem allgemeinen Modul brauchen, bevorzugen Sie die Geschwister-Werkzeuge für Reste und Symbole; diese Seite ist der vollständigen Nichtrest-Liste einer ungeraden Primzahl gewidmet.
Anwendungsfälle
Lösungsschlüssel und Tabellen
Erzeugen Sie die vollständige sortierte Liste quadratischer Nichtreste modulo einer kleinen ungeraden Primzahl für Übungen, Folien und Bewertungsschlüssel, ohne einen CRT-Löser zu bauen.
Wettbewerbs- und Eigenschaftstest-Orakel
Behaupten Sie, dass ein lokaler Restfinder und diese Nichtrest-Liste für jede ungerade Primzahl in einem Testbereich eine Partition von 1..p-1 bilden.
Beispiele aus Kryptographie-Kursen
Ziehen Sie Nichtreste für didaktische Rabin- oder Reziprozitäts-Demonstrationen, wenn Sie konkrete Klassen brauchen und nicht nur das Vorzeichen des Legendre-Symbols.
Häufige Fragen
Was ist ein quadratischer Nichtrest modulo p?
Für eine ungerade Primzahl p ist eine durch p nicht teilbare ganze Zahl a ein quadratischer Nichtrest modulo p, wenn keine ganze Zahl x die Kongruenz x² ≡ a (mod p) erfüllt. Dieses Werkzeug liefert alle solchen a in 1..p-1, aufsteigend sortiert.
Warum muss p eine ungerade Primzahl sein?
Die klassische Partition von null verschiedener Reste und Nichtreste der Größe (p−1)/2 je Seite ist für ungerade Primzahlen formuliert.
Welche Größe von p wird unterstützt?
p muss eine ganze Zahl von 3 bis 100,000 einschließlich sein und eine ungerade Primzahl. Größere Primzahlen liegen außerhalb der Produktfläche dieses Listen-Endpunkts.
Welche quadratischen Nichtreste gibt es modulo 11?
Es sind 2, 6, 7, 8 und 10. Das sind fünf, genau die Hälfte der zehn von null verschiedenen Reste, wie bei jeder ungeraden Primzahl.
Ist null ein Rest oder ein Nichtrest?
Null ist immer ein Quadrat, denn null zum Quadrat ist null, und wird gesondert behandelt. Die Liste umfasst daher nur die Reste von 1 bis p − 1.
Wie viele Nichtreste hat eine Primzahl?
Genau (p − 1)/2, also die Hälfte der von null verschiedenen Reste. Die andere Hälfte sind Quadrate. Stimmen beide Anzahlen überein, ist die Liste vollständig.
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/quadratic-nonresidues-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"p":7}'const res = await fetch("https://api.kit.forhosting.com/numth/quadratic-nonresidues-list", {
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/quadratic-nonresidues-list",
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/quadratic-nonresidues-list", 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/quadratic-nonresidues-list", 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": 7
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.quadratic_nonresidues_list",
"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 | 3 |
max_p | 100000 |
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
Quadratische Nichtreste und warum die Liste die Hälfte von 1..p−1 ist
Genau das implementiert dieser Endpunkt: reine Ganzzahlarithmetik, stabile JSON-Schlüssel und keine Abhängigkeit von externen Bibliotheken oder probabilistischer Primzahlprüfung jenseits einer deterministischen Probedivision innerhalb der dokumentierten Größengrenze.
Eingabevertrag, Grenzen und Antwortfelder
Senden Sie ein einziges ganzzahliges Feld p, den ungeraden Primmodul. Beispiel: für p gleich sieben ist das Array nonresidues drei, fünf, sechs und count ist drei. Leere Objekte, Dezimalzeichenketten und Werte über dem dokumentierten Maximum werden mit einer englischen Meldung abgelehnt, die das Feld benennt. Optionale Aliase prime, modulus und mod werden mit derselben Bedeutung akzeptiert. Der Wert muss zwischen drei und einhunderttausend einschließlich liegen und tatsächlich eine ungerade Primzahl sein; gerade Zahlen, Zusammengesetzte wie neun oder fünfzehn, die Primzahl zwei, Nichtganzzahlen und fehlende Eingabe scheitern an der Validierung mit invalid_input und werden nicht berechnet. Bei Erfolg enthält die Nutzlast p, nonresidues als aufsteigende Liste jedes a von eins bis p minus eins, das kein Quadrat modulo p ist, count gleich der Länge dieser Liste, residue_count gleich der Anzahl von null verschiedener quadratischer Reste und expected_count gleich (p minus eins) durch zwei. Für eine korrekte ungerade Primzahl stimmen count, residue_count und expected_count mit dieser Halbzahl-Identität überein — eine nützliche Selbstprüfung, wenn Sie die API aus Skripten nutzen.
Wo vollständige Nichtrest-Listen in der Praxis vorkommen
Zahlentheorie-Kurse stellen Aufgaben wie listen Sie alle quadratischen Nichtreste modulo siebzehn oder vergleichen Sie Resttabellen über kleine Primzahlen; eine deterministische JSON-Liste beseitigt Off-by-one-Fehler in handgeschriebenen Gittern. Weil die Fähigkeit eine reine Parse-Engine ist, gibt es keine Modelldrift, keinen externen API-Schlüssel und keinen gespeicherten Zustand: dasselbe p liefert stets dasselbe Array nonresidues. Die API-Preisgestaltung ist die veröffentlichte Basis von $0.002 pro erfolgreichem Element; fehlgeschlagene Validierung wird nicht berechnet.
Technische Fragen
Wie viele Nichtreste gibt es?
Genau (p−1)/2. Die Antwortfelder count und expected_count melden diesen Wert; residue_count stimmt ebenfalls für die von null verschiedenen Reste überein.
Was kostet es?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Anfragen nutzen das vorausbezahlte KIT-Guthaben zu $0.002 pro erfolgreichem Element; ungültige Eingabe wird nicht berechnet.