i18n/de/skills/solve-modular-arithmetic/SKILL.md
Modulare Arithmetik-Probleme loesen einschliesslich Kongruenzen, Systeme ueber den Chinesischen Restsatz, modulare Inverse und Anwendungen des Satzes von Euler. Umfasst sowohl manuelle als auch rechnerische Ansaetze. Verwenden beim Loesen linearer Kongruenzen, Berechnen modularer Inverser, Auswerten grosser modularer Potenzen, Arbeiten mit simultanen Kongruenzen (CRT) oder Operieren in zyklischen Gruppen und Kontexten diskreter Logarithmen.
npx skillsauth add pjt222/agent-almanac solve-modular-arithmeticInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Modulare Arithmetik-Probleme loesen durch Parsen von Kongruenzsystemen, Anwenden des erweiterten euklidischen Algorithmus fuer Inverse, Verwenden des Chinesischen Restsatzes fuer simultane Kongruenzen und Nutzen des Satzes von Euler fuer modulare Potenzierung. Jede Loesung durch Einsetzen verifizieren.
Die mathematische Struktur aus der Problemstellung extrahieren.
Typ identifizieren:
Normalisieren: Alle Koeffizienten modulo ihrer jeweiligen Moduli reduzieren. Sicherstellen dass a, b, m nicht-negative ganze Zahlen mit m > 0 sind.
Erfassen: Das geparste Problem in Standardnotation aufschreiben.
Erwartet: Ein klar geparstes und normalisiertes modulares Problem mit allen reduzierten Werten.
Bei Fehler: Wenn die Notation mehrdeutig ist (z.B. "loese 3x + 5 = 2 mod 7" koennte 3x + 5 = 2 (mod 7) oder 3x + (5 = 2 mod 7) bedeuten), mit dem Benutzer klaeren. Standardmaessig mod als auf die gesamte Gleichung angewandt interpretieren.
ax = b (mod m) mittels erweitertem euklidischen Algorithmus loesen.
g = ggT(a, m) berechnen mittels euklidischem Algorithmus:
Loesbarkeit pruefen: ax = b (mod m) hat genau dann eine Loesung, wenn g | b.
Reduzieren: Durch g teilen um (a/g)x = (b/g) (mod m/g) zu erhalten. Nun ist ggT(a/g, m/g) = 1.
Modulares Inverses finden von a/g modulo m/g mittels erweitertem euklidischen Algorithmus:
Partikulaere Loesung berechnen: x0 = s * (b/g) mod (m/g).
Allgemeine Loesung aufschreiben: x = x0 + (m/g)*k fuer k = 0, 1, ..., g - 1 ergibt alle g inkongruenten Loesungen modulo m.
Beispiel des erweiterten euklidischen Algorithmus (Finden von 17^{-1} mod 43):
43 = 2*17 + 9
17 = 1*9 + 8
9 = 1*8 + 1
8 = 8*1 + 0
Back-substitute:
1 = 9 - 1*8
= 9 - 1*(17 - 1*9) = 2*9 - 17
= 2*(43 - 2*17) - 17 = 2*43 - 5*17
So 17*(-5) = 1 (mod 43), i.e., 17^{-1} = -5 = 38 (mod 43).
Erwartet: Die vollstaendige Loesungsmenge der Kongruenz oder ein Beweis, dass keine Loesung existiert.
Bei Fehler: Wenn die Rueckwaertssubstitution des erweiterten euklidischen Algorithmus ein falsches Ergebnis liefert, jeden Divisionsschritt verifizieren. Der haeufigste Fehler ist ein Vorzeichenfehler bei der Rueckwaertssubstitution. Pruefung: a * Inverses mod m sollte 1 ergeben.
x = a1 (mod m1), x = a2 (mod m2), ..., x = ak (mod mk) loesen.
Paarweise Teilerfremdheit pruefen: Fuer jedes Paar (mi, mj) verifizieren dass ggT(mi, mj) = 1.
M = m1 * m2 * ... * mk berechnen (das Produkt aller Moduli).
Fuer jedes i, Mi = M / mi berechnen (das Produkt aller Moduli ausser mi).
Fuer jedes i, yi = Mi^{-1} (mod mi) finden mittels erweitertem euklidischen Algorithmus aus Schritt 2.
Loesung berechnen: x = sum(ai * Mi * yi fuer i = 1..k) mod M.
Ergebnis angeben: x = [Wert] (mod M). Dies ist die eindeutige Loesung modulo M.
Referenz haeufiger Euler-Funktionswerte:
| n | phi(n) | n | phi(n) | n | phi(n) | |------|--------|------|--------|------|--------| | 2 | 1 | 10 | 4 | 20 | 8 | | 3 | 2 | 11 | 10 | 24 | 8 | | 4 | 2 | 12 | 4 | 25 | 20 | | 5 | 4 | 13 | 12 | 30 | 8 | | 6 | 2 | 14 | 6 | 36 | 12 | | 7 | 6 | 15 | 8 | 48 | 16 | | 8 | 4 | 16 | 8 | 60 | 16 | | 9 | 6 | 18 | 6 | 100 | 40 |
Erwartet: Eine eindeutige Loesung modulo M oder ein Beweis der Inkompatibilitaet.
Bei Fehler: Wenn die CRT-Berechnung ein Ergebnis liefert, das die Verifikation nicht besteht, die modularen Inversberechnungen in Schritt 4 pruefen. Ein haeufiger Fehler ist die Berechnung von Mi^{-1} mod M statt Mi^{-1} mod mi. Jedes Inverse wird modulo des einzelnen Modulus berechnet, nicht des Produkts.
Modulare Potenzen auswerten oder Ausdruecke mittels Satz von Euler vereinfachen.
Satz von Euler: Wenn ggT(a, m) = 1, dann a^{phi(m)} = 1 (mod m).
Kleiner Fermatscher Satz (Spezialfall): Wenn p Primzahl und ggT(a, p) = 1, dann a^{p-1} = 1 (mod p).
Exponenten reduzieren: Um a^k (mod m) zu berechnen:
a^r (mod m) berechnen mittels wiederholtem Quadrieren (binaere Potenzierung):
Fall ggT(a, m) > 1 behandeln: Der Satz von Euler ist nicht direkt anwendbar. m faktorisieren und CRT verwenden um Ergebnisse aus Primzahlpotenz-Moduli zu kombinieren, mittels Exponentenanhebung oder direkter Berechnung.
Erwartet: Der Wert von a^k (mod m), berechnet ueber Exponenrenreduktion und wiederholtes Quadrieren.
Bei Fehler: Wenn ggT(a, m) > 1 und das Ergebnis falsch erscheint, den Satz von Euler nicht anwenden. Stattdessen direkt berechnen oder m in teilerfremde Teile faktorisieren, wobei zumindest einige Teile teilerfremd zu a sind, modulo jedes Teils loesen und mit CRT rekombinieren.
Jede Loesung durch Einsetzen in die Originalgleichungen pruefen.
Fuer einzelne Kongruenzen: a * x mod m berechnen und verifizieren dass es gleich b ist.
Fuer CRT-Systeme: Fuer jede Kongruenz x = ai (mod mi) verifizieren dass x mod mi = ai.
Fuer modulare Potenzen: Falls moeglich, mit einer zweiten Berechnungsmethode verifizieren (z.B. direkte Berechnung fuer kleine Werte oder unabhaengige Implementierung wiederholten Quadrierens).
Verifikation explizit dokumentieren:
Solution: x = 23
Check 1: 23 mod 3 = 2 = a1. Correct.
Check 2: 23 mod 5 = 3 = a2. Correct.
Check 3: 23 mod 7 = 2 = a3. Correct.
All congruences satisfied.
Erwartet: Alle Originalgleichungen mit explizit gezeigter Berechnung verifiziert.
Bei Fehler: Wenn die Verifikation fehlschlaegt, durch die Vorgehensweise zurueckverfolgen um den Rechenfehler zu finden. Haeufige Quellen: Rechenfehler im erweiterten euklidischen Algorithmus, falsches Vorzeichen bei der Rueckwaertssubstitution oder vergessene Reduktion modulo M im letzten CRT-Schritt.
CRT ohne Teilerfremdheitspruefung anwenden: Die Standard-CRT-Formel erfordert paarweise teilerfremde Moduli. Anwendung auf nicht-teilerfremde Moduli gibt eine falsche Antwort, keinen Fehler. Immer zuerst ggT(mi, mj) = 1 pruefen.
Das falsche Inverse berechnen: Mi^{-1} muss modulo mi (dem einzelnen Modulus) berechnet werden, nicht modulo M (dem Produkt). Dies ist der einzelne haeufigste CRT-Implementierungsfehler.
Satz von Euler anwenden wenn ggT(a, m) > 1: a^{phi(m)} = 1 (mod m) erfordert ggT(a, m) = 1. Wenn dies fehlschlaegt, ist der Satz nicht anwendbar und das Ergebnis falsch.
Vorzeichenfehler bei der Rueckwaertssubstitution des erweiterten euklidischen Algorithmus: Bei jedem Schritt sorgfaeltig auf Vorzeichen achten. Das endgueltige Inverse kann negativ sein; immer modulo m reduzieren um einen positiven Repraesentanten zu erhalten.
Ueberlauf bei modularer Potenzierung: Selbst bei wiederholtem Quadrieren koennen Zwischenprodukte ueberlaufen. Immer modulo m nach jeder Multiplikation reduzieren, nicht erst am Ende.
Mehrfachloesungen vergessen: ax = b (mod m) mit g = ggT(a, m) > 1 und g | b hat genau g inkongruente Loesungen modulo m, nicht nur eine.
analyze-prime-numbers -- Primfaktorzerlegung wird zur Berechnung von phi(m) und zur Verifikation der Teilerfremdheit benoetigtexplore-diophantine-equations -- Lineare diophantische Gleichungen ax + by = c sind aequivalent zu linearen Kongruenzen ax = c (mod b)prove-geometric-theorem -- Modulare Arithmetik erscheint in Konstruierbarkeiitsbeweisen (z.B. welche regelmaessigen n-Ecke konstruierbar sind)testing
Launch all available agents in parallel waves for open-ended hypothesis generation on problems where the correct domain is unknown. Use when facing a cross-domain problem with no clear starting point, when single-agent approaches have stalled, or when diverse perspectives are more valuable than deep expertise. Produces a ranked hypothesis set with convergence analysis and adversarial refinement.
tools
Write integration tests for a Node.js CLI application using the built-in node:test module. Covers the exec helper pattern, output assertions, filesystem state verification, cleanup hooks, JSON output parsing, error case testing, and state restoration after destructive tests. Use when adding tests to an existing CLI, testing a new command, verifying adapter behavior across frameworks, or setting up CI for a CLI tool.
development
Screen a proposed trademark for conflicts and distinctiveness before filing. Covers trademark database searches (TMview, WIPO Global Brand Database, USPTO TESS), distinctiveness analysis using the Abercrombie spectrum, likelihood of confusion assessment using DuPont factors and EUIPO relative grounds, common law rights evaluation, and goods/services overlap analysis. Produces a conflict report with a risk matrix. Use before adopting a new brand name, logo, or slogan — distinct from patent prior art search, which uses different databases, legal frameworks, and analysis methods.
tools
Scaffold a new CLI command using Commander.js with options, action handler, three output modes (human-readable, quiet, JSON), and optional ceremony variant. Covers command naming, option design, shared context patterns, error handling, and integration testing. Use when adding a command to an existing Commander.js CLI, designing a new CLI tool from scratch, or standardizing command structure across a multi-command CLI.