Java :: Aufgabe #242 :: Lösung #4

5 Lösungen Lösungen öffentlich
#242

Summe alle Teiler einer positven Ganzzahl

Anfänger - Java von hollst - 18.06.2019 um 20:49 Uhr
Man schreibe eine Funktion SIGMA(n) mit n > 0 und ganzzahlig, wobei der Funktionswert sich
aus der Summe aller ganzzahligen, positven Teiler von n ergibt.

Beispiele (Zahl; Teiler; Funktionswert);
1; 1; 1
2; 1, 2; 3
4; 1, 2, 4; 7
5; 1, 5; 6
...
12; 1, 2, 3, 4, 6, 12; 28
...
100; 1, 2, 4, 5, 10, 20, 25, 50, 100; 217

Für 0 < n <= 200 sollte sich der beigefügte Pinplot ergeben.

Viel Spaß!
#4
vote_ok
von fsnik745 (20 Punkte) - 30.09.2019 um 19:46 Uhr
Quellcode ausblenden Java-Code
public class TeilerSumme {


    public static int teilerSumme (int n) throws IllegalArgumentException{

        if (n<=0) {
            throw new IllegalArgumentException("Der Methodenparameter muss > 0 sein.");
        }

        int sum = 0;

        for (int i=n; i>=1; i--) {

            if (isTeiler(n, i)) {
                sum += i;
            }

        }

        return sum;

    }

    private static boolean isTeiler (int n, int teiler) {

        return ((double) n / (double) teiler) % 1 == 0;

    }

    public static void main (String [] args) {

        int [] test = new int[201];

        for (int i=0; i<test.length; i++) {

            try {
                test[i] = teilerSumme(i);
            } catch (IllegalArgumentException e) {
                test[i] = 0;
            }

            System.out.println (i + ": " + test[i]);

        }

    }

}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben