Hey,
ich bin relativ neu in Java und habe Schwierigkeiten bei einer Aufgabe die ich lösen möchte.
Und zwar würde ich gerne einen Array mit Primzahlen füllen. Dies funktioniert auch, allerdings werden die Stellen des Arrays, welche keine Primzahlen sind mit 0 gefüllt. Da ich nicht wusste wie man das behebt, habe ich nun einfach versucht einen zweiten Array zu erstellen und diesen nur mit den Stellen aus dem ersten Array zu füllen welche nicht gleich 0 sind. Hierbei springt mein Array allerdings immer out of Bounds und ich weiß nicht warum.
Ich würde mich über eure Hilfe freuen, gerne auch Vorschläge wie man das ganze eleganter lösen kann
ich bin relativ neu in Java und habe Schwierigkeiten bei einer Aufgabe die ich lösen möchte.
Und zwar würde ich gerne einen Array mit Primzahlen füllen. Dies funktioniert auch, allerdings werden die Stellen des Arrays, welche keine Primzahlen sind mit 0 gefüllt. Da ich nicht wusste wie man das behebt, habe ich nun einfach versucht einen zweiten Array zu erstellen und diesen nur mit den Stellen aus dem ersten Array zu füllen welche nicht gleich 0 sind. Hierbei springt mein Array allerdings immer out of Bounds und ich weiß nicht warum.
Ich würde mich über eure Hilfe freuen, gerne auch Vorschläge wie man das ganze eleganter lösen kann
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int berreich = scanner.nextInt();
// Scanner jedeXte = new Scanner(System.in);
// int jedeXte2 = scanner.nextInt();
int[] primzahl = new int[berreich];
int primzahlRealLänge = 0;
boolean istPrimzahl;
for (int i = 2; i <berreich; i++) {
istPrimzahl = true;
for (int j = 2; j < i; j++) {
if ((i % j) == 0) {
istPrimzahl = false;
break;
}
}
if (istPrimzahl) {
primzahl[i] = i;
//System.out.println(primzahl[i]);
}
}
for (int i = 0; i < berreich; i ++) {
System.out.println(primzahl[i]);
}
for (int i = 0; i<berreich; i ++) {
if (primzahl[i] != 0 ) {
primzahlRealLänge = primzahlRealLänge + 1;
}
}
System.out.println(primzahlRealLänge);
int [] primzahlReal = new int [primzahlRealLänge];
for (int i = 0; i < berreich; i++) {
if (primzahl[i] != 0) {
primzahl[i] = primzahlReal[i];
}
}
// for (int i = 0; i < primzahlRealLänge; i ++) {
//
// System.out.println(primzahlReal[i]);
// }
}
}