kann mir jemand erklären, wie man die Lösung dieser Aufgabe verstehen soll? Wie liest man das?
Die Aufgabe lautet: Implementieren Sie den "Sieb des Eratosthenes" Algorithmus.
Lösung der Aufgabe:
C++:
#inlude <iostream>
usingnamespace std;
int main() { int array[120]; int k; array[2] = 1;
for (k=2; k<120; k++) { if (array[k]!=-1) { array[k]=1; for (int k=k+1; k<120; t++) if (t%k==0) array[t]=-1; } } for (k=2; k<120; k++) { if (array[k]==1) cout << k << " ist eine Primzahl." endl; } }
Lg, Kajam
----- Edit: cpp-Tags eingefügt und Code formatiert.Dieser Post wurde am 20.09.2020 um 15:42 Uhr von Hans editiert.
kann mir jemand erklären, wie man die Lösung dieser Aufgabe verstehen soll? Wie liest man das?
Wie?! - wie liesst man das?! - ich verstehe gerade Dein Problem nicht. (Ausser das ich vermute, dass Du überhaupt keine Ahnung hast, was der Code überhaupt bedeutet...)
Davon abgesehen sind noch ein paar Fehler in dem Code drin:
for (k=2; k<120; k++) { if (array[k]!=-1) { array[k]=1; for (int k=k+1; k<120; t++) // symbol 't' has not been declared if (t%k==0) // Hier steckt auch noch ein Fehler in der Logik. array[t]=-1; } } for (k=2; k<120; k++) { if (array[k]==1) cout << k << " ist eine Primzahl." endl; // Syntax Error } }
-- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.Dieser Post wurde am 20.09.2020 um 16:14 Uhr von Hans editiert.
Der gegebene Code prüft für die ersten N Zahlen, ob sie prim sind oder nicht, indem er alle möglichen Divisionen versucht (if (t%k == 0). Das ist KEINE Lösung der Aufgabe "implementieren Sie das Sieb des Eratosthenes"! Der Trick bei Eratosthenes ist, dass eben nicht dividiert werden muss (ist zu kompliziert, multiplizieren ist einfacher).