JavaScriptsMathematik

Quersumme berechnen

Berechnet Quersumme, iterierte Quersumme und alternierende Quersumme — und sagt damit, durch welche Zahlen sich der Wert teilen lässt.

Die Quersumme ist die Summe aller Ziffern einer Zahl: Aus 4711 wird 4 + 7 + 1 + 1 = 13. Was wie eine Spielerei aussieht, ist ein handfestes Werkzeug — an der Quersumme sieht man auf einen Blick, ob eine Zahl durch 3 oder durch 9 teilbar ist, ohne sie zu teilen.

Das Script berechnet drei Varianten. Die einfache Quersumme ist die Summe der Ziffern. Die iterierte Quersumme wiederholt das Verfahren, bis nur noch eine Ziffer übrig ist — aus 4711 wird 13 und daraus 4; diese Zahl heißt auch digitale Wurzel. Die alternierende Quersumme zählt die Ziffern abwechselnd plus und minus, von hinten beginnend; sie verrät die Teilbarkeit durch 11.

Daraus ergeben sich die Teilbarkeitsregeln, die das Script gleich mit prüft: Eine Zahl ist durch 3 teilbar, wenn ihre Quersumme durch 3 teilbar ist. Durch 9, wenn die Quersumme durch 9 teilbar ist. Durch 11, wenn die alternierende Quersumme durch 11 teilbar ist — die 0 zählt dabei mit. Dazu kommen die Regeln, die man an den letzten Ziffern abliest: durch 2 bei gerader Endziffer, durch 4 wenn die letzten beiden Ziffern durch 4 teilbar sind, durch 5 bei 0 oder 5 am Ende, durch 8 bei den letzten dreien.

Die Quersumme ist auch der Urahn aller Prüfziffern. Wer wissen will, wie daraus ernsthafte Verfahren werden, findet sie bei der ISBN-Prüfziffer, der IBAN und der Kreditkartennummer. Verwandt sind außerdem Teiler einer Zahl und Primfaktorzerlegung.

Mathematik Baujahr 2026 läuft in deinem Browser

Sehr lange Zahlen sind ausdrücklich erlaubt — gerechnet wird ziffernweise, nicht mit dem Zahlenwert.

Script von kostenlose-javascripts.de

So funktioniert das Script

Das Script rechnet ausschließlich mit den Ziffern als Text und nie mit dem Zahlenwert. Das ist kein Umweg, sondern der eigentliche Kniff — und der Grund, warum es auch mit hundertstelligen Zahlen umgehen kann.

for (let i = 0; i < text.length; i++) {
  summe += Number(text.charAt(i));
}

Die Quersumme ist eine Schleife über die Zeichen der Zahl. charAt(i) liefert eine einzelne Ziffer als Text, Number macht daraus eine Zahl. Hätte man die Eingabe zuerst mit Number() in eine Zahl verwandelt, wäre bei mehr als sechzehn Stellen Schluss — dann beginnt JavaScript zu runden, und die letzten Ziffern wären schlicht falsch. Genau dasselbe Problem umgeht die IBAN-Prüfung mit einem verwandten Trick.

let vorzeichen = 1;
for (let i = text.length - 1; i >= 0; i--) {
  summe += vorzeichen * Number(text.charAt(i));
  vorzeichen = -vorzeichen;
}

Die alternierende Quersumme läuft von hinten und dreht bei jedem Schritt das Vorzeichen um. vorzeichen = -vorzeichen ist die kürzeste Art, zwischen +1 und −1 hin- und herzuschalten. Von hinten zu beginnen ist wichtig: Die Regel bezieht sich auf die Stellenwerte, und die zählen von der Einerstelle aus.

Warum funktioniert das? Weil 10 geteilt durch 11 den Rest −1 lässt: 10 ist 11 minus 1, 100 ist 9·11 + 1, 1000 ist 91·11 − 1. Die Stellenwerte wechseln also bei Division durch 11 zwischen +1 und −1 — und genau das bildet die alternierende Summe nach.

while (laufend.length > 1) {
  laufend = String(quersumme(laufend));
  schritte.push(laufend);
}

Die iterierte Quersumme wird so lange gebildet, bis nur noch eine Ziffer dasteht. Die Schleife endet garantiert, weil jede Quersumme kleiner ist als die Zahl selbst — bei mehrstelligen Zahlen deutlich. Die Schritte werden mitgeschrieben, damit der Weg sichtbar bleibt: 123456789 → 45 → 9.

Die digitale Wurzel ist übrigens dasselbe wie der Rest bei Division durch 9, mit der 9 anstelle der 0. Deshalb haben alle durch 9 teilbaren Zahlen die digitale Wurzel 9 — und deshalb funktioniert die alte Neunerprobe zum Überprüfen von Rechnungen.

const letzteZwei = Number(text.slice(-2));

slice mit negativer Zahl schneidet vom Ende ab: -2 liefert die letzten beiden Zeichen. Die Regeln für 4 und 8 beruhen darauf, dass 100 durch 4 und 1000 durch 8 teilbar ist — alles davor kann man also getrost ignorieren, es ist ohnehin teilbar.

const regeln = [
  { teiler: 3, trifft: summe % 3 === 0, grund: "…" },
  …
];
const teilbar = regeln.filter(function (r) { return r.trifft; });

Alle Regeln stehen in einer Liste, jede mit ihrem Ergebnis und einer Begründung. filter behält die zutreffenden. Dass die Begründung gleich mitgespeichert wird, macht aus dem Ergebnis eine Erklärung — für ein Lernwerkzeug der eigentliche Wert.

Zum Anpassen: Die Regel für 7 fehlt, weil sie unhandlich ist — man verdoppelt die letzte Ziffer und zieht sie vom Rest ab, wiederholt das und schaut, ob am Ende 0 oder 7 steht. Wollt ihr sie ergänzen, ist das eine weitere Funktion und ein weiterer Eintrag in der Liste.

Script für die eigene Homepage

Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.

Mehr aus der Kategorie Mathematik