Hallo Leute,
ich brauche eure Hilfe bei meiner Java-Hausaufgabe.
Aufgabenstellung:
1. Aufgabe:
Graf Zahl findet Zahlen knuddelig, welche größer als die Summe aller ihrer echten Teiler (die
Summe aller Teiler ohne die Zahl selbst) sind. Beispiele sind:
9: 1 + 3 = 4. 9 ist also eine knuddelige Zahl (zumindest für Graf Zahl).
12: 1 + 2 + 3 + 4 + 6 = 16. 12 ist nicht knuddelig.
Graf Zahl wünscht sich nun ein Programm das ihm die ersten n knuddeligen Zahlen
beginnend von 2 auflistet. Gehen Sie dabei wie folgt vor:
a) Erstellen Sie eine Methode int[] arrayAnlegen(). Hier werden mit Hilfe eines
Scanners 2 Zahlen eingelesen. Die erste Zahl a gibt an ab welcher Zahl begonnen
werden soll die knuddeligen Zahlen zu berechnen (Achten Sie darauf, dass nur Zahlen
ab 2 knuddelig sein können). Die zweite Zahl b gibt an wie viele knuddelige Zahlen
berechnet werden sollen. Anschließend wird ein Array der Größe b angelegt und mit
den ersten b knuddeligen Zahlen beginnend von a aufgefüllt (Ihr Programm sollte
nicht abstürzen wenn sich Graf Zahl vertippt und eine negative Zahl eingibt).
Für a = 3 und b = 4 sollte das Array also mit den Zahlen 3, 4, 5, 7 befüllt werden.
Wenn ich nun für a 3 eingebe und für b 4, dann erhalte ich: 81606, 81606, 81606, 81606.
Rauskommen soll aber: 3, 4, 5, 7
Die Formattierung bitte nicht beachten, sieht hier etwas wirr aus.
vielen Dank!
ich brauche eure Hilfe bei meiner Java-Hausaufgabe.
Aufgabenstellung:
1. Aufgabe:
Graf Zahl findet Zahlen knuddelig, welche größer als die Summe aller ihrer echten Teiler (die
Summe aller Teiler ohne die Zahl selbst) sind. Beispiele sind:
9: 1 + 3 = 4. 9 ist also eine knuddelige Zahl (zumindest für Graf Zahl).
12: 1 + 2 + 3 + 4 + 6 = 16. 12 ist nicht knuddelig.
Graf Zahl wünscht sich nun ein Programm das ihm die ersten n knuddeligen Zahlen
beginnend von 2 auflistet. Gehen Sie dabei wie folgt vor:
a) Erstellen Sie eine Methode int[] arrayAnlegen(). Hier werden mit Hilfe eines
Scanners 2 Zahlen eingelesen. Die erste Zahl a gibt an ab welcher Zahl begonnen
werden soll die knuddeligen Zahlen zu berechnen (Achten Sie darauf, dass nur Zahlen
ab 2 knuddelig sein können). Die zweite Zahl b gibt an wie viele knuddelige Zahlen
berechnet werden sollen. Anschließend wird ein Array der Größe b angelegt und mit
den ersten b knuddeligen Zahlen beginnend von a aufgefüllt (Ihr Programm sollte
nicht abstürzen wenn sich Graf Zahl vertippt und eine negative Zahl eingibt).
Für a = 3 und b = 4 sollte das Array also mit den Zahlen 3, 4, 5, 7 befüllt werden.
Code:
import java.util.Scanner;
public class JavaHausaufgabe5 {
public static void main(String[] args) {
arrayAnlegen();
}
public static void arrayAnlegen() {
Scanner sc = new Scanner(System.in);
int startZahl, anzahlKnuddeligeZahlen;
do {
System.out.println("Bitte geben Sie eine Zahl fuer a >= 2 ein");
startZahl = sc.nextInt();
} while (startZahl < 2);
do {
System.out.println("Bitte geben Sie eine Zahl fuer b >= 0 ein");
anzahlKnuddeligeZahlen = sc.nextInt();
} while (anzahlKnuddeligeZahlen < 0);
int counterKnuddeligeZahl = 0;
int summeTeiler = 0;
int[] Array = new int[anzahlKnuddeligeZahlen];
while (counterKnuddeligeZahl <= anzahlKnuddeligeZahlen) {
for (int i = 1; i < startZahl; i++) {
if (startZahl % i == 0) {
summeTeiler += i;
}
}
for (int j = 0; j < anzahlKnuddeligeZahlen; j++) {
if (summeTeiler < startZahl) {
Array[j] = startZahl;
counterKnuddeligeZahl = counterKnuddeligeZahl + 1;
}
}
startZahl++;
}
for (int k = 0; k < anzahlKnuddeligeZahlen; k++) {
System.out.print(Array[k] + ", ");
}
}
}
Wenn ich nun für a 3 eingebe und für b 4, dann erhalte ich: 81606, 81606, 81606, 81606.
Rauskommen soll aber: 3, 4, 5, 7
Die Formattierung bitte nicht beachten, sieht hier etwas wirr aus.
vielen Dank!
Zuletzt bearbeitet: