Primzahlen

Bedingt geb ich dir Recht, die 2 hab ich übersehen, aber sonst:
Ich überprüfe, ob eine zahl < 2 ist. 0 und 1 sind keine Primzahlen.
Je nach Mathe Prof war bei mir 0 manchmal bei den natürlichen zahlen dabei, oder nicht.
Danach mit || schmeiss ich alle geraden Zahlen raus. Bis auf die 2 stimmts ja.
Und danach lauf ich alle ungeraden Zahlen durch und schau, ob meine gestestete dadurch Teilbar ist. Die ungeraden Zahlen muss ich nur bis Wurzel(i) durchlaufen. Sonst mach ich tests doppelt.

Für die 2 kann man ja noch ein "else if (i == 2)" einbauen
Ja, und trotzdem stimmt die Ausgabe und der grundsätzliche Algorithmus nicht. Du müßtest die Schleife abbrechen wenn du einen Teiler versch. von 1 gefunden hast und du kannst erst nach Beendigung der Schleife (wenn kein Teiler gefunden wurde) sagen, das die Zahl eine Primzahl ist. Auch du bist offensichtlich mit der Komplexität des Algorithmus in dieser Form überfordert. Deswegen verstehe ich nicht warum du den Algorithmus nicht modular mit Hilfe einer Funktion implementierst. Diese Art der Hilfestellung ist meiner Meinung nach auch nicht besonders hilfreich, da sie den Lerneffekt völlig zunichte macht.

Gruß
 
Zuletzt bearbeitet:
Stimmt ich hab innerhalb der letzten For Schleife einfach nicht bedacht, dass für jeden Durchlauf dieser Schleife ja ne Ausgabe passiert, dass kommt vom schnell schnell mal drüberschaun.

Mit nem Schalter vor der Schleife, der mit false initalisiert wird, dem Setzen auf true in der Schleife und der nachfolgenden Ausgabe nach der Schleife wird pro Zahl auch nur eine Zeile ausgegeben.
 
Zurück