Ein vielleicht nicht besonders effizienter, aber definitiv funktionaler Weg wäre: 1 und 2 werden als Primzahlen ausgegeben. Ist n>2, wird eine Zählschleife für i=3 bis n gestartet: Für jedes i wird eine Variable k = 2 gesetzt. Ist i durch k teilbar (also der ganzzahlige Rest der Division beider Zahlen = 0), so ist i keine Primzahl. Ist i nicht durch k teilbar, wird k hingegen um 1 erhöht. Sollte k nun = i sein, ist i eine Primzahl und kann zur Liste deiner Primzahlen (z. B. in ein Array) eingefügt werden, ansonsten wird wieder die Teilbarkeit von i und k geprüft.
Natürlich wäre es auch möglich (und vermutlich übersichtlicher), eine innere Zählschleife von k = 2 bis i-1 einzubauen; dies hätte jedoch Einbußen bei der Effizienz zur Folge, da beispielsweise für alle geraden Zahlen mitunter viel Rechenzeit verschwendet werden würde, da bereits bei der ersten Prüfung klar wäre, dass i keine Primzahl ist (weil eben durch 2 teilbar), die Prüfung aber trotzdem bis i-1 weiterliefe.
Ich hoffe, bei den ganzen Variablen war die Erläuterung einigermaßen verständlich. Ich habe das ganze sonst noch einmal in einem Struktogramm dargestellt, falls es dem Verständnis des Algorithmus dienlich ist ;-)
Student, Punkte: 10