Primzahltester in Java Probleme mit der Zahl 9?
moin sobald ich bei dem Programm die Zahlen 9,99,999… eingebe sagt das Programm immer es sei eine Primzahl aber es ist ja neunmal keine. Kann mir da jemand helfen ?
LG
M
4 Antworten
Du solltest solange davon ausgehen, dass es eine Primzahl ist, bis das Gegenteil durch Modulo gezeigt werden kann.
Naja, man prüft ja auch nicht auf Primzahlen, nur ob eine Zahl durch 2 ohne Rest teilbar ist.
Dein Programm geht in die Schleife rein, und prüft als erstes ob die Zahl durch 2 Teilbar ist.
Da 9 nicht durch 2 Teilbar ist, wird ausgegeben "Diese Zahl ist eine Primzahl" und die Schleife wird verlassen.
Dann ist es ziemlicher Murks, oder? Das dient nur der Feststellung, ob eine Zahl gerad oder Ungerade ist. Da auf Primzahl zu schließen, da alle Primzahlen ungerade sein müssen, aber die allerwenigsten Prim, also nur duch 1 und sich selbst teilbar, sind...?!
Die Schleife wird genau einmal durchlaufen mit y=2. Du berechnest 9 modulo 2 (ergibt eins), machst die Abfrage, die dir dann "ist eine Primzahl" lieferst, und beendest mit dem break; die Schleife.