public class PrimaZahlen extends MiniJava { public static void main(String[] args) { // n vom Nutzer abfragen: // Hierfür kann dieselbe Schleife wie in meiner Lösung von "3 und 7" benutzt werden. // Die folgende Schleife gibt zusätzlich eine Fehlermeldung aus. int n = read("Bitte n eingeben:");; while (n <= 0) { write("Fehler! Die Eingabe muss positiv sein."); n = read("Bitte n eingeben:"); } // Sonderfall 1 (ist keine Primzahl; gibt -0,5 falls vergessen): if (n == 1) { write("n ist keine Primzahl"); return; // Methode verlassen, um keine weiteren write-Aufrufe zu haben } // Prüfe, ob n durch eine Zahl im Bereich [2, n) teilbar ist: int i = 2; while(i < n) { // effizienter: i <= Math.sqrt(n) if (n % i == 0) { // ist teilbar write("n ist keine Primzahl"); return; // Methode verlassen, um keine weiteren write-Aufrufe zu haben } i++; } // Wird dieser Punkt erreicht, so wurde die Methode nicht verlassen, d. h. n ist Primzahl write("n ist Primzahl"); } }