Java :: Aufgabe #242
5 Lösungen
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ß!
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:
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; } }
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
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; } }
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]); } } }
Java-Code
/** * Programm zur Berechnung der Summe von Teilern einer Zahl. * Ausgegeben wird die Zahl, deren Teiler und die Summe aller Teiler * @author HR_SS */ public class ZahlenTeiler { public static void main(String[] args) { int limit = 123; System.out.println("Zahl; Teiler; SummeTeiler"); for(int i = 1; i <= limit; i++) { System.out.println("; " + ZahlenTeilerFunktion(i)); } } private static int ZahlenTeilerFunktion(int i) { int summ = 0; System.out.print(i + ";"); for(int j = 1; j <= i; j++) { if(i % j == 0) { System.out.print(" " + j); summ += j; } } return summ; } }