Hallo,
Ich muss eine Hausaufgabe erledigen, in der es darum geht aus einen Feld alle Primzahlen mit Hilfe des Siebes von Eratstohones zu finden und die nicht-Primzahlen zu löschen. Dabei sollte ich zwei Felder verwenden ( hier: zahl und prüfung).
Dazu habe ich schon versucht, eine Klasse mit implementierten Methoden zu erstellen, aber nicht das gewünschte Ergebnis erhalten.
Mein Vorschlag:
Kann mir jemand bitte helfen, meinen Fehler zu finden?
Für Eure Mühe schon einmal Danke im voraus!
Ich muss eine Hausaufgabe erledigen, in der es darum geht aus einen Feld alle Primzahlen mit Hilfe des Siebes von Eratstohones zu finden und die nicht-Primzahlen zu löschen. Dabei sollte ich zwei Felder verwenden ( hier: zahl und prüfung).
Dazu habe ich schon versucht, eine Klasse mit implementierten Methoden zu erstellen, aber nicht das gewünschte Ergebnis erhalten.
Mein Vorschlag:
Java:
public class SIEB{
private int [] zahl;
private boolean[] prüfung;
public SIEB(int n){
zahl= new int [n];
prüfung= new boolean [n];
}
private void setzen(){
for(int i=2; i<zahl.length; i=i+1){
prüfung[i]=true;
}
for(int i=2; i<zahl.length; i=i+1){
zahl[i-2]=i;
}
}
private void primzahlenBestimmen(){
for(int p=0; p<zahl.length; p=p+1){
if (prüfung[p]){
for(int v=2*p; v<zahl.length; v=v+p){
prüfung[v]=false;
}
}
}
}
private void primzahlenAusgeben(){
for (int i=0; i<zahl.length; i=i+1){
if (prüfung[i]){
System.out.println(zahl[i]);
}
}
}
public void primzahlenErmitteln(){
setzen();
primzahlenBestimmen();
primzahlenAusgeben();
}
}
Kann mir jemand bitte helfen, meinen Fehler zu finden?
Für Eure Mühe schon einmal Danke im voraus!