Anzahl der Primitivwurzeln modulo n
Modulo 18 gibt es genau 2 Primitivwurzeln, den Wert der zweimal angewandten eulerschen Phi-Funktion. Geben Sie einen Modul ein und sehen Sie, wie viele Erzeuger er hat, oder einen klaren Hinweis, wenn er keine hat, wie bei 8. 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
- N
- 18
- Betrag
- 18
- Anzahl der Primitivwurzeln
- 2
Dieser Rechner prüft, ob ein Modul Primitivwurzeln besitzt, und gibt gegebenenfalls deren exakte Anzahl zurück. Das Ergebnis ist die Eulersche Phi-Funktion der Eulerschen Phi-Funktion des Moduls, geschrieben als phi(phi(n)). Der Rechner berücksichtigt die vollständige Familie zulässiger Module und setzt nicht voraus, dass die Eingabe eine Primzahl ist. Gehört das Modul zu einer Klasse ohne Primitivwurzeln, erhalten Sie eine klare Eingabefehlermeldung statt einer irreführenden Null.
Was die Anzahl bedeutet
Eine Primitivwurzel modulo n ist eine Restklasse, deren aufeinanderfolgende Potenzen sämtliche invertierbaren Restklassen modulo n erzeugen. In der Gruppentheorie ist sie ein Erzeuger der multiplikativen Gruppe der ganzen Zahlen modulo n. Dieses Werkzeug beantwortet eine genaue Frage: Wie viele verschiedene Restklassen erzeugen diese Gruppe?
Es listet die Erzeuger nicht auf und sucht auch nicht nach dem kleinsten. Existiert eine Primitivwurzel, dann ist die multiplikative Gruppe zyklisch und besitzt phi(n) Elemente. Eine zyklische Gruppe der Ordnung phi(n) hat genau phi(phi(n)) Erzeuger; diesen Wert gibt der Rechner zurück.
Modulo 18 bilden die invertierbaren Reste beispielsweise eine zyklische Gruppe der Ordnung 6. Da phi(6) gleich 2 ist, gibt es zwei Primitivwurzeln. Die Anzahl bezieht sich auf Restklassen modulo n und nicht auf beliebige ganzzahlige Vertreter: Werte, die sich um ein Vielfaches von n unterscheiden, beschreiben dieselbe Wurzel.
Daher eignet sich das Ergebnis für Beweise, Aufgaben und Algorithmen, bei denen die Größe der Erzeugermenge wichtiger ist als die einzelnen Elemente.
Welche Module Primitivwurzeln besitzen
Nicht jedes positive Modul besitzt Primitivwurzeln. Nach der vollständigen Klassifikation existieren sie genau dann, wenn n gleich 2, 4, einer ungeraden Primzahlpotenz p^k oder dem Doppelten einer ungeraden Primzahlpotenz 2p^k ist. Der Rechner faktorisiert das eingegebene Modul und wendet diesen Satz an, bevor er zählt.
Das ist entscheidend, weil die ungeprüfte Auswertung von phi(phi(n)) für ein unzulässiges Modul eine positive Zahl liefert, obwohl keine Erzeuger vorhanden sind. So gilt phi(8) gleich 4 und phi(4) gleich 2, doch modulo 8 gibt es keine Primitivwurzel; das Ergebnis 2 wäre mathematisch falsch. Deshalb weist diese Funktion ein solches Modul ausdrücklich zurück.
Primzahlmodule größer als zwei sind als Sonderfall p^1 enthalten. Auch zusammengesetzte Beispiele wie 9, 14, 18 und 25 sind zulässig, während 8, 12, 15 und 20 es nicht sind. Klassifikation und Zählformel bleiben getrennt, damit die Ausgabe stets eine tatsächlich vorhandene Menge von Primitivwurzeln beschreibt.
Ergebnis verwenden und richtig deuten
Geben Sie eine ganze Zahl n zwischen 2 und 1,000,000,000,000 ein. Die Eingabe muss eine numerische Ganzzahl sein, keine Dezimalzeichenfolge, kein Bruch, keine wissenschaftliche Näherung, kein negativer Wert und keine unsichere JavaScript-Ganzzahl. Die Obergrenze hält die Faktorisierung endlich und planbar und deckt dennoch viele praktische sowie schulische Berechnungen ab.
Intern ermittelt der Algorithmus die Primzahlpotenzstruktur durch deterministische Probedivision, prüft den Existenzsatz, berechnet phi(n) aus den verschiedenen Primfaktoren und anschließend phi(phi(n)). Er verwendet weder Netzwerkzugriffe noch Zufallssuche; gleiche Eingaben liefern daher immer gleiche Ausgaben.
Anwendungsfälle
Eine zahlentheoretische Aufgabe prüfen
Kontrollieren Sie die erwartete Zahl der Erzeuger, bevor Sie Primitivwurzeln von Hand aufzählen.
Eine Erzeugersuche dimensionieren
Bestimmen Sie, wie viele gültige Restklassen eine vollständige Suche nach Primitivwurzeln finden sollte.
Ein zulässiges Modul validieren
Weisen Sie ein Modul mit nichtzyklischer multiplikativer Gruppe zurück, bevor ein weiterer Algorithmus eine Primitivwurzel voraussetzt.
Häufige Fragen
Welche Formel verwendet der Rechner?
Für ein Modul mit Primitivwurzeln gibt er phi(phi(n)) zurück, wobei phi die Eulersche Phi-Funktion bezeichnet.
Warum meldet das Werkzeug einen Fehler statt null?
Der Vertrag unterscheidet einen mathematisch unzulässigen Fall von einer gültigen Anzahl. Ein Modul ohne Primitivwurzeln gilt daher als ungültige Eingabe.
Welche Module besitzen Primitivwurzeln?
Genau 2, 4, ungerade Primzahlpotenzen p^k und das Doppelte solcher Potenzen, 2p^k.
Listet das Werkzeug die Primitivwurzeln auf?
Nein. Es gibt ausschließlich die Anzahl der Restklassen zurück, die modulo n Primitivwurzeln sind.
Werden Primzahlmodule unterstützt?
Ja. Jedes Primzahlmodul besitzt Primitivwurzeln, auch 2; ungerade Primzahlen sind Fälle ungerader Primzahlpotenzen.
Warum liefert Modulo 8 keine Anzahl?
Modulo 8 gibt es keine Primitivwurzel. Die Formel ergäbe zwar 2, doch diese Zahl wäre falsch; deshalb meldet der Rechner klar, dass dieser Modul keine Primitivwurzeln besitzt, statt eine irreführende Anzahl zu nennen.
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/count-primitive-roots \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":18}'const res = await fetch("https://api.kit.forhosting.com/numth/count-primitive-roots", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 18
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/count-primitive-roots",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 18
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/count-primitive-roots", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":18}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":18}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/count-primitive-roots", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"n": 18
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.count_primitive_roots",
"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.
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
Ergebnis verwenden und richtig deuten
Die Antwort wiederholt sie als modulus und liefert in primitive_root_count die exakte ganze Anzahl. Eine invalid_input-Antwort wegen fehlender Primitivwurzeln ist eine mathematische Aussage über das Modul und kein vorübergehender Dienstfehler. Wenn Sie die Wurzeln selbst benötigen, verwenden Sie ein Such- oder Aufzählungswerkzeug; dieser Endpoint liefert bewusst nur die Kardinalität. Jede API-Anfrage kostet $0.002 und nutzt dieselbe exakte Arithmetik.
Technische Fragen
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002.