Hallo,
ich steht irgendwie grad auf dem Schlauch: ich weis einfach nicht weiter!
Meine Aufgabe wäre mit dem Algorithmus Sieb des Eratosthenes eine Primzahlen- methode zu schreiben: public static boolean[] primzahlensieb (int m), m ist die oberste Grenze der zahlen.
Also ich habe ein Array aus Zahlen, 0 und 1 schließe ich aus, weil beides keine Primzahlen bin und setze sie deswegen auf false, den rest des Arrays muss ich auf true setzen. Soweit richtig? Das mach ich mit meiner for- Schleife. Aber dann weis ich einfach nicht weiter: ich fange dann mit 2 an also array an der Stelle 2 (hier 2 mit 0) und müsste dann alle Vielfachen von 2 aus dem array raussschmeisen. Ich weis momentan einfach nicht wie ich vorgehen soll: Kann mir jemand einen Tipp oder so?
Was ich bis jetzt habe:
Was sagt ihr zu meinem Ansatz bis jetzt? Das müsste soweit ja nicht ganz schlecht sein oder? Ich weis einfach nicht weiter. Vielleicht so:
Ich glaube es ist gar nicht nötig die zweite for Schleife innerhalb der ersten for- Schleife zu haben.
Gruss NC!!!
ich steht irgendwie grad auf dem Schlauch: ich weis einfach nicht weiter!
Meine Aufgabe wäre mit dem Algorithmus Sieb des Eratosthenes eine Primzahlen- methode zu schreiben: public static boolean[] primzahlensieb (int m), m ist die oberste Grenze der zahlen.
Also ich habe ein Array aus Zahlen, 0 und 1 schließe ich aus, weil beides keine Primzahlen bin und setze sie deswegen auf false, den rest des Arrays muss ich auf true setzen. Soweit richtig? Das mach ich mit meiner for- Schleife. Aber dann weis ich einfach nicht weiter: ich fange dann mit 2 an also array an der Stelle 2 (hier 2 mit 0) und müsste dann alle Vielfachen von 2 aus dem array raussschmeisen. Ich weis momentan einfach nicht wie ich vorgehen soll: Kann mir jemand einen Tipp oder so?
Was ich bis jetzt habe:
Java:
public class Primzahlen {
public static boolean[] sieb (int m)
boolean[] zahlen = new boolean[m]; // Anlegen eines Arrays mit den Zahlen von o bis m
//Initialisierung dieses Arrays (alle Werte auf true setzen, ausser Elemente an der Stelle 0 und 1)
int i;
for (i=0, i<m+1, i++) { //durchlaufen des Arrays, jedes Element mit true belegen
zahlen[0]=false; //die beiden Ausnahmen auf false setzen
zahlen[1]=false;
zahlen[i]=true;
Was sagt ihr zu meinem Ansatz bis jetzt? Das müsste soweit ja nicht ganz schlecht sein oder? Ich weis einfach nicht weiter. Vielleicht so:
Java:
for (i=2, i<m+1, i++) { //eine weitere for- Schleife (innerhalb der ersten), die bei i=2 beginnt
zahlen[alle Zahlen die ein Vielfaches von i=2 sind]=false;
//hier weis ich nicht weiter! Wie soll ich das in korrektes Java implementieren? Bitte bitte helfen! Dankeschön!
Ich glaube es ist gar nicht nötig die zweite for Schleife innerhalb der ersten for- Schleife zu haben.
Gruss NC!!!
Zuletzt bearbeitet: