Java :: Aufgabe #242

4 Lösungen Lösungen öffentlich

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ß!

Lösungen:

vote_ok
von tobiasbillen (210 Punkte) - 20.07.2019 um 16:07 Uhr
Quellcode ausblenden Java-Code
public class SummeTeiler {
    public static void main(String[] args) {
        System.out.println("Zahl\tTeilersumme");
        for(int i = 1; i < 201; i++){
            System.out.println(i +"\t" + summeTeiler(i));
        }
    }   
    public static int summeTeiler(int zahl){
        int summe = 0;
        for(int i = 1; i <= zahl; i++){
            if(zahl % i == 0){
                summe += i;
            }
        }
        return summe;        
    }
}
vote_ok
von Rattlesnake (150 Punkte) - 16.08.2019 um 12:26 Uhr
Quellcode ausblenden Java-Code
import java.util.ArrayList;

public class Java_242 {

    public static void sigma(int n){
        ArrayList teiler = new ArrayList();

        for (int i = 1; i <= n; i++){
            if (n%i == 0){
                teiler.add(i);
            }
        }
        System.out.println("Zahl: " +n);
        System.out.print("Teiler: ");
        int summeTeiler = 0;
        for (Object o : teiler) {
            summeTeiler += (Integer) o;
            System.out.print(o + ", ");
        }
        System.out.println("");
        System.out.println("Funktionswert: " +summeTeiler);
    }

    public static void main(String[] args) {
        sigma(100);
    }
}


Und die Ausgabe davon:

Zahl: 100
Teiler: 1, 2, 4, 5, 10, 20, 25, 50, 100,
Funktionswert: 217
vote_ok
von Fre011 (230 Punkte) - 27.08.2019 um 16:00 Uhr
Quellcode ausblenden Java-Code

public class Summe {
	
	public static int number = 200;
	
	public static void main (String[] args) {
		System.out.println(SIGMA(number));
	}
	
	public static int SIGMA(int n) {
		int sum = 0;
		for(int i = 1; i <= n; i++) {
			sum = sum + i * ((n%i == 0)? 1 : 0);
		}
		return sum;
	}
}

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]);

        }

    }

}