Primzahl erweiterung bitte um hilfe

Status
Nicht offen für weitere Antworten.

urano

Mitglied
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


Code:
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

Top Contributor
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.

Code:
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
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben