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:
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;
}
}
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
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;
}
}
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]);
}
}
}
/**
* 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;
}
}
