Primzahl-Tester

Ultraviolett

Mitglied
Hallo,

ich versuche gerade, ein Programm zu schreiben, dass für einen eingegebenen Integer ausgibt, ob es sich um eine Primzahl handelt, oder nicht. Aber irgendwie will das noch nicht so ganz:

Java:
import java.util.Scanner;

public class Primzahl {

	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		int x =input.nextInt();
		input.close();
     
		int i;
		for (i =2;i<x;i++){
		int Rest= x%i;
		if (Rest==0){System.out.println("Keine Primzahl");break;}
		else {System.out.println("Primzahl");}
		}
	}
}



Die Idee war halt, dass Teiler zwischen 1 und der eingegeben Zahl geprüft werden und wenn einer glatt teilt, dann kann es sich nicht um eine Primzahl handeln. Aber das Programm liefert nicht immer eindeutige Antworten oder gibt mehrere "Primzahl"-Ausgaben hintereinander. Wenn ich jedoch ein zusätzliches break einfüge, wird der for-Teil als toter Code deklariert. :bahnhof:

Gruß
 

ssoul26

Bekanntes Mitglied
Du musst nicht bis zu der Zahl gehen. Es reicht, wenn du alle Zahlen bis n/2 überprüfst, sparst dir Rechenzeit;)

Zu der Ausgabe:
Du springst, wenn != 0 immer in den Else-Zweig und gibst dort Primzahl aus. Daher wird dir auch mehrmal Primzahl ausgegeben. Bei Rest == 0, machst du einen Break ist richtig. Am besten du lagerst das in eine Methode aus, die boolean zurückgibt.

Java:
import java.util.Scanner;
public class primzahl {
   public static void main(String[] args) {
      Scanner input = new Scanner(System.in);
      int x = input.nextInt();
      input.close();
      int i;
      if (isPrime(x)) {
         System.out.println("Primzahl");
      } else {
         System.out.println("Keine Primzahl");
      }
   }

   private static boolean isPrime(int x) {
      for (int i = 2; i < x; i++) {
         int Rest = x % i;
         if (Rest == 0) {
            return false;
         }
      }
      return true;
   }
}
 

Ultraviolett

Mitglied
Ich mache gerade einen Java-Anfänger-Kurs, deswegen kenne ich nur sehr wenige Befehle.
Was hast du da gemacht mit " private static boolean isPrime(int x)" und den return-Befehlen?
 

ssoul26

Bekanntes Mitglied
Ich mache gerade einen Java-Anfänger-Kurs, deswegen kenne ich nur sehr wenige Befehle.
Was hast du da gemacht mit " private static boolean isPrime(int x)" und den return-Befehlen?

Java:
//Hier wird eine neue Methode angelegt, die einen boolschen-Wert zurückgibt, also true oder false. Die Methode //bekommt als Parameter einen int-Wert übergeben. 
//static deswegen, da der gesamte Kontext static ist, also die Methode in der Main-Klasse liegt. Würde die Methode /nicht im Main aufgerufen werden, so könnte sie auch nicht static sein. Diesbezüglich würde ich dir google empfehlen.
private static boolean isPrime(int x) {
for (int i = 2; i < x; i++) {
int Rest = x % i;
if (Rest == 0) {
return false;
}
}
return true;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
O Primzahl rekursiv mit einem Wert ohne i, wie? Java Basics - Anfänger-Themen 6
O Erste Schritte Primzahl Methode Java Basics - Anfänger-Themen 8
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
O Primzahl bis n Java Basics - Anfänger-Themen 5
D Primzahl Aufgabe Java Basics - Anfänger-Themen 5
R Primzahl ja/nein - besserer Code möglich? Java Basics - Anfänger-Themen 2
T Primzahl Java Basics - Anfänger-Themen 12
I Höchste Zahl berechnen die eine Eingabe ohne Rest teilt und eine Primzahl ist Java Basics - Anfänger-Themen 2
A 10001-te Primzahl herausfinden Java Basics - Anfänger-Themen 5
L primzahl Java Basics - Anfänger-Themen 54
R Primzahl kleiner 3 Java Basics - Anfänger-Themen 2
T Primzahl Schleife Java Basics - Anfänger-Themen 15
X Primzahl Ausgabe falsch Java Basics - Anfänger-Themen 10
M Primzahl Java Basics - Anfänger-Themen 11
D Array Fehler / groesste Primzahl suchen Java Basics - Anfänger-Themen 4
F Primzahl oder nicht?! Java Basics - Anfänger-Themen 7
S Primzahl in einem Array finden Java Basics - Anfänger-Themen 21
J Primzahl mit for Schleife Java Basics - Anfänger-Themen 4
A Fehler im Primzahl Programm Java Basics - Anfänger-Themen 17
S Primzahl berechnen in Java Java Basics - Anfänger-Themen 7
K Primzahl//immer true Java Basics - Anfänger-Themen 7
ven000m Primzahl.class wie starte ich diese einzelne Datei? Java Basics - Anfänger-Themen 10
M Primzahl Java Basics - Anfänger-Themen 8
W Nächstgelegene Primzahl Java Basics - Anfänger-Themen 3
I Primzahl suchen Java Basics - Anfänger-Themen 5
G primzahl oder nicht? Java Basics - Anfänger-Themen 16
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben