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

... komplette Frage anzeigen

2 Antworten

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 bewerten Vielen Dank für Deine Bewertung

For-Schleife

Modulo 2 == 0 --> Ganzzahl

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?