Da die Zahl 2 die einzige gerade Primzahl ist, wird nur noch mit ungeraden Zahlen gearbeitet:
public class Sieb4 { public static void main(String args[]) { // 1. Deklaration der Variablen int i, j; // Feldgroesse halbiert boolean [] sieb = new boolean[50]; // 2. Initialisierung des Feldes for (i=1; i<50; i++) sieb[i]=true; // 3. Loeschen der Vielfachen for (i=1; i<=10; i++) if(sieb[i]==true) for (j=3*i+1; j<50; j+=2*i+1) sieb[j]=false; // 4. Ausgabe der Primzahlen System.out.println(2); for (i=1; i<50; i++) if (sieb[i]==true) System.out.println(2*i+1); // 5. Beenden des Programms System.exit(0); } }