Hier ist das Primzahlen Script mit fußgesteuerten Schleifen. Auch hier beträgt das Limit der Primzahlen den Wert 1000.
boolean primzahlen[];
primzahlen = new boolean [grenze+1];
// Hier erzeugen wir eine Instanz von prim: Wenn obereGrenze = 100 ist, so stehen die Variablen prim[0], prim[1], prim[2] ... prim[100] zur Verfuegung
// Alle Zahlen im Feld sind zu Beginn nicht gestrichen
primzahlen[0] = false;
primzahlen[1] = false;
int zaehler = 2;
// Initialisierung: alle Zahlen >= 2 werden zunaechst als moegliche Primzahlen behandelt:
while (zaehler <= grenze)
{
primzahlen[zaehler]=true;
zaehler ++; // <==> zaehler = zaehler + 1;
}
int kleinePrimzahl = 1, vielfachheit;
// Erlaeutere die Laufbedingung 'kleinePrimzahl * kleinePrimzahl <= obereGrenze' !
while (kleinePrimzahl * kleinePrimzahl <= grenze)
{
// suche naechste Primzahl in der Liste
do kleinePrimzahl ++;
while (!primzahlen[kleinePrimzahl]);
// loesche die Vielfachen der kleinen Primzahl aus der Liste
vielfachheit = 2;
while (vielfachheit * kleinePrimzahl <= grenze)
{
primzahlen[vielfachheit * kleinePrimzahl] = false;
vielfachheit ++;
}
}
// Ausgabemethode
System.out.println("Liste aller Primzahlen bis " + grenze);
zaehler = 2;
int prim = 0;
while (zaehler <= grenze)
{
if (primzahlen[zaehler])
{
prim++;
System.out.print (zaehler + "; ");
// Nach jeweils 20 Zahlen Neue Zeile
if (prim % 20 == 0)
System.out.println("");
}
zaehler++;
}
System.out.println("\n" + "Es gibt " + prim + " Primzahlen <= " + grenze);
System.out.println("");
Keine Kommentare:
Kommentar veröffentlichen