# Primzahl erweiterung bitte um hilfe



## urano (28. Jun 2006)

Weiß jemand wie ich dieses Programm so erweitern kann das wenn ich die Zahl 5 z.B. gebe das er mir dir erste möglichen Primzahlen von Oben und von unten gibt in diesem Falls wäre dies 3 die erste untere Primzahl und die obere wäre 7. Thx schon mal im vorraus



```
import java.io.*;

public class Primzahl
{
	public static void main(String[]args)
	throws IOException
	{
		BufferedReader din = new BufferedReader(
			new InputStreamReader (System.in));

			String Eingabe;
			int zahl;
			int end;

			System.out.println("Beginn Zahl");
			Eingabe = din.readLine();
			zahl = Integer.parseInt(Eingabe);

			System.out.println("End Zahl");
			Eingabe = din.readLine();
			end = Integer.parseInt(Eingabe);

			while(zahl <end)
			{
				zahl++;
				//Ausgabe
				if(zahl>1 && istPrim(zahl))
				{
					System.out.println(zahl + "ist Primzahl");
				}
				else
				{
					System.out.println(zahl + "ist keine Primzahl");
				}
			}
	}
			//Überprüft ob es ne Primzahl ist oder keine
			public static boolean istPrim(long zahl)
			{
				for(long i =2; i<= (zahl /2); i++)
				{
					if (zahl % i == 0)
					return false;
				}
				return true;

	}
}
```


----------



## Leroy42 (28. Jun 2006)

Mir ist nicht so ganz klar was du unter Erweiterung 
verstehst. Das jetzige Programm druckt halt Primzahlen
im, vom user angegebenem, Bereich aus. Aber bzgl.
deiner Aufgabenstellung würde ich so vorgehen.


```
int mitte = "Eingabe von User";
boolean primUnter = false;
boolean primÜber = false;
for (int i = 1; !(primUnter && primÜber); i++) {
  if (!primUnter && isPrim(mitte-i)) {
    System.out.println(mitte-i);
    primUnter = true;
  }
  if (!primÜber && isPrim(mitte+i)) {
    System.out.println(mitte+i);
    primÜber = true;
  }
}
```

Oder was genau willst du?  ???:L


----------



## urano (28. Jun 2006)

yepp das meinte ich thx


----------

