Primzahlzwillinge

PPhilipp

Grünschnabel
Wie programmiere ich ein Programm, das in ein 2dimensoinales Array alle Primzahlzwillinge <= n schreibt, das auf dem hier angegebenen "Sieb des Erathostenes" aufbaut?
Code:
public class Sieb {

  
  protected boolean[] tabelle;

  /** Erzeuge neues Sieb.*/
  public Sieb (int max) {
    tabelle = new boolean[max+1];
    for (int j=2; j<tabelle.length; j++) {
      tabelle[j]=true;
    }
  }

  /** Streiche Vielfache der Zahl k aus dem Sieb 
   * (d.h. markiere tabelle[j], j==2k, 3k, 4k, usw. mit false).
   */
  public void eliminiereVielfache(int k) {
    if (tabelle[k]) {
      for (int j=2*k; j<tabelle.length; j += k) {
        tabelle[j]=false;
      }
    }
  }

  /** Eliminiere alle faktorisierbaren Zahlen aus dem Sieb. */
  public void siebe() {
    for (int p=2; p<Math.sqrt(tabelle.length); p++) {
      eliminiereVielfache(p);
    }
  }

  /** Drucke die Zahlen i, fuer die tabelle[i] == true. */
  public void drucke() {
    for (int p=2; p<tabelle.length; p++) {
      if (tabelle[p]) System.out.print(p+" ");
    }
    System.out.println();
  }

  /** Hauptprogramm */
  public static void main (String[] argv) {
    Sieb s;
    if (argv.length==0) {
      s = new Sieb(100);
    } else {
      s=new Sieb(Integer.parseInt(argv[0]));
    }
    s.siebe();
    s.drucke();
  }
}
 
Zuletzt bearbeitet von einem Moderator:
Code:
public class Primzahlzwillinge
{
	public static void main(String[] args)
	{
		for (int i=2; i<=1000; i++)
		{			
			int j = i+2;
			int n = i;
			isPrime (n);		
			
			if ((isPrime(n)==true) && (isPrime(n + 2)==true))//Bsp.: falls 2 und 4(2+2)beider Primzahlen sind, ...
			{
				System.out.println("Primzahl Zwilling :  "+i+" & "+j);//Ausgabe aller Primzahlen bis 1000 !
			}
		}	
	}//main
	

	public static boolean isPrime (int n)
	{
		if (n < 2) return false;

		boolean isPrime = true;

		for (int i = 2; i*i <= n; i++)
		
		if (n % i == 0) 
		{
			isPrime=false; 
			break;
		}

		return isPrime;

	}
}
sorry.. habe das 2d array vergessen.. muss schnell weg.. werde mich nachher daran versuchen..

Gruß
Aaron
 
Zuletzt bearbeitet von einem Moderator:
Zurück