Schleifen (4): Teiler und Primzahlen

Das folgende Programm fragt nach einer Zahl und teilt dann mit, ob die eingegebene Zahl gerade (durch 2 teilbar) oder ungerade (nicht durch 2 teilbar) ist. Es verwendet dazu den Operator %. Die Operation a % b liefert den Rest aus der Division a durch b zweier Integerzahlen. Beispiel: 12 % 5 = 2, da bei der Division 12 durch 5 der Rest 2 übrigbleibt. Ist ein Rest 0, so geht die Division auf.


import java.util.*;

class Primzahl_0 {

  public static void main(String[] args) {
    System.out.println("Primzahl 0\n");
    Scanner Eingabe = new Scanner(System.in);
    int testZahl = 0;

    System.out.print("Gib mir bitte eine Zahl: ");
    testZahl = Eingabe.nextInt();

    if (testZahl % 2 == 0) {
      System.out.println(testZahl+" ist teilbar durch 2");
    } else {
      System.out.println(testZahl+" ist nicht teilbar durch 2");
    }
  }
}


Den Operator % wollen wir bei den folgenden Aufgaben zur Primzahlforschung verwenden.
Lösen Sie die Aufgaben der Reihe nach und benennen Sie die Klassen  mit Primzahl_1, Primzahl_2, Primzahl_3, ...

Aufgaben:

  1. Prüfen Sie durch eine Schleife welche Zahlen zwischen 1 und der Testzahl Teiler dieser Zahl sind.
    Bei der Eingabe 12 sollte die Ausgabe lauten: Teiler von 12 sind 1, 2, 3, 4, 6, 12.
  2. Geben Sie aus, wie viele Teiler die Testzahl hat.
    Falls die Testzahl genau 2 Teiler hat, geben Sie außerdem aus: Deine Zahl ist eine Primzahl.
  3. Stellen Sie durch 2 verschachtelte Schleifen fest, wie viele Primzahlen es zwischen 1 und 100 gibt.
  4. Stellen Sie fest, welches die erste Primzahl nach 1000, nach 1000 000, nach 1000 000 000 ist.
  5. Listen Sie alle Primzahlen zwischen 1000 und 2000 auf. Messen Sie die Zeit, die Sie dafür benötigen.
  6. Versuchen Sie das Verfahren aus der vorigen Aufgabe zu optimieren und zu beschleunigen.