001
30.01.2014, 15:44 Uhr
ao
(Operator)
|
Zitat: |
Das Programm funktioniert, jedoch mit einem kleinen Fehler
|
Das Programm findet alle Primzahlen, insofern funktioniert es tatsächlich. Der "kleine" Fehler ist: Es "findet" auch alle anderen ungeraden Zahlen und jubelt sie euch als prim unter. Aber ihr habt das schön gesagt
Erstens, das break gehört da nicht hin. Ihr brecht die innere Schleife IMMER nach dem ersten Durchlauf ab, d.h. ihr testet immer nur n=2.
Zweitens, eure Logik ist falsch. Eine Zahl ist eine Primzahl, wenn KEINE der Divisionen aufgeht, und nicht, wie in eurer Schleife, wenn IRGENDEINE der Divisionen nicht aufgeht. Letzteres ist bei jeder natürlichen Zahl N der Fall, wenn man sie durch etwas teilt, was größer ist als N/2.
Ich hab hier ein Beispielprogramm, das mit EINER boolschen Variablen auskommt. Vielleicht würde man die auch noch wegkriegen, aber ich fürchte, das ginge schwer auf Kosten der Lesbarkeit. Wenn ihr wollt, poste ich es, aber ich will euch den Sport nicht verderben ... Dieser Post wurde am 30.01.2014 um 15:45 Uhr von ao editiert. |