Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Sieb des Eratosthenes » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Sieb des Eratosthenes
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
DudiPupan
Grünschnabel


Dabei seit: 30.10.2011
Beiträge: 5

Sieb des Eratosthenes Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo allerseits,
ich arbeite gerad an meinen Übungen für den Programmierkurs und bin gerade bei folgender Aufgabe:

Das Sieb des Eratosthenes ist ein Algorithmus zur Bestimmung aller Primzahlen kleiner oder
gleich einer vorgegebenen Zahl n. Dazu notiert man alle Zahlen zwischen 2 und n. Dann gibt
man die Primzahl 2 aus, und streicht alle Vielfachen von 2 aus der Zahlenliste. Dann gibt
man die nachste Zahl in der Liste aus, die Primzahl 3, und streicht alle Vielfachen von 3. Da
die 4 als ein Vielfaches von 2 nicht mehr in der Liste existiert, wird als nachstes die Primzahl
5 ausgegeben, und wiederum alle Vielfachen von 5 gestrichen. Dieser Vorgang wird bis zur
Zahl n fortgefuhrt. Am Ende erhalt man alle Primzahlen kleiner oder gleich n als Ausgabe.


Meine Ideen:

Das soll ich in BlueJ in einer Methode implementieren.
Ich denke mal, dass ich eine boolean-Methode brauche, oder?
Ich versthe nur noch nicht ganz, wie das mit dem "rausstreichen" der verschiedenen Werte gemeint ist, bzw wie es umzusetzen ist.
Vielen Dank
31.10.2011 14:45 DudiPupan ist offline Beiträge von DudiPupan suchen Nehmen Sie DudiPupan in Ihre Freundesliste auf
Jannik93
Grünschnabel


Dabei seit: 31.10.2011
Beiträge: 1

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,
also ich hab mir das mal alles aufgemalt und hab nun die Frage ob die ausgegebenden Zahlen in der Liste gestrichen werden sollen oder später auch ausgegeben werden sollen?

Zu deiner Frage du brauchst wahrscheinlich ein Array wo du dann den Benutzer fragst wie die Zahl n lauten soll z.b 12.

-->Sieb des Eratosthenes

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Jannik93: 31.10.2011 17:12.

31.10.2011 17:08 Jannik93 ist offline Beiträge von Jannik93 suchen Nehmen Sie Jannik93 in Ihre Freundesliste auf
DudiPupan
Grünschnabel


Dabei seit: 30.10.2011
Beiträge: 5

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Also ich hab das jetzt mal auf folgendem Weg versucht:

public boolean [] aufgabe3(int n) {
boolean[] p = new boolean[n+1];
p[1]=false;
for(int i=2; i<p.length; i++) {
p[i]=true;
}
for (int i=2; i<=(n+1)/2;i++) {
for(int j=2; j<(n+1)/i; j++) {
p[i*j]=false;
}
}
return p;


}

Jedoch spuckt er den letzten wert immer mit dem wahrheitswert true aus, was mir ganz und gar nicht passt!
Was habe ich übersehen, wo liegt der fehler?
01.11.2011 12:48 DudiPupan ist offline Beiträge von DudiPupan suchen Nehmen Sie DudiPupan in Ihre Freundesliste auf
GertGundel
unregistriert
Die Lösung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

public boolean [] aufgabe3(int n) {
boolean[] p = new boolean[n+1];
p[1]=false;
for(int i=2; i<p.length; i++) {
p[i]=true;
}
for (int i=2; i<=(n)/2;i++) {
for(int j=2; j<=(n)/i; j++) {
p[i*j]=false;
}
}
return p;



so gehts
25.01.2016 11:19
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Sieb des Eratosthenes