Berechne Primzahlen von 1-10zb?

2 Antworten

Du brauchst an sich nur eine Schleife, die einmal alle Zahlen von Start bis Ende abläuft. Je Iteration benutzt du die istPrimzahl-Methode auf die Zahl, um zu prüfen, ob du sie ausgeben musst oder nicht.

Den Beistrich würde ich stets vor der Zahl ausgeben. Schreibst du ihn hinter die Zahl, kannst du dir nie sicher sein, ob es sich nicht gerade um die letzte Primzahl handelt oder ob doch noch eine weitere Zahl in der Kette kommt. Bei der ersten gefundenen Primzahl muss der Beistrich allerdings weggelassen werden. Man kann sich eine boolsche Variable dafür anlegen, die angibt, ob der Beistrich ausgegeben werden darf oder nicht. Anfangs steht sie auf true, nach Ausgabe einer Primzahl wird sie auf false gesetzt.

Ob ein Zeilenumbruch notwendig ist, lässt sich mit einer Ganzzahldivision berechnen. Zähle einfach mit, wie viele Primzahlen schon gefunden wurden. Diesen Zähler kann man ganzteilig (Modulo: %) durch 10 teilen. Wenn es keinen Rest gibt, hast du die zehnte Zahl vor dir.

Pseudo Code:
Eingabe StartWert
if StartWert gleich Natürliche Ziffer Weiter sonst Abbruch oder Abrundung
if StartWert == Geradezahl dann Startwert++1
Eingabe EndWert
if EndWert gleich Natürliche Ziffer Weiter sonst Abbruch oder Abrundung
Prüfung auf Tausch
var myResult = ""
While StartWert < Endwert
if IsPrim(StartWert) then
myResult = myResult & StartWert & "-"
end if
StartWert = StartWert +1
loop
if myResult = "" then
Ausgabe Nix gefunden
else
Ausgabe myResult
End if