Frage von Mauricejunior, 31

Wie kann ich vorgehen, um die Gesamtheit der Teiler einer Ganzzahl mit Java zu programmieren?

Antwort
von Schachpapa, 15

Wenn deine Zahlen einigermaßen klein (also noch als int darstellbar) sind könntest du es etwa so machen:

import java.util.ArrayList;

ArrayList<Integer> findeTeiler(int n) {
ArrayList<Integer> teiler = new ArrayList<>();
for (int t=2; t*t <= n; t++) {
if (n % t == 0) {
teiler.add(t);
teiler.add(n/t);
}
}
return teiler;
}

Das probiert alle Zahlen bis zur Wurzel (bei int maximal 45000) und sammelt Teiler und Teilergebnis (das ja auch ein Teiler ist) in der Liste teiler. Bei Quadratzahlen kriegst du die Wurzel zweimal als Teiler, evtl. abfangen.

Wenn es große Zahlen sind, wäre eine Primfaktorenzerlegung mit anschließender Kombination aller Faktoren schneller. Das kann ich aber nicht ohne Ausprobieren einfach so runterschreiben ;-)

Antwort
von safur, 15

For-Schleife

Modulo 2 == 0 --> Ganzzahl

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten