Primzahlen ausgeben. Wo liegt der Fehler?

duese

Mitglied
Guten Abend!

Der folgende Code Soll Primzahlen erkennen und ausgeben.
Allerdings gibt er fast alle zahlen aus, also eine Art Zähler. Woran könnte das liegen?
Die Comments habe ich zum schnelleren verstehen stehen gelassen. Sollte ich sie raus nehmen wegen der Übersichtlichkeit?

Code:
 public class mirp {
	
	public static void main(String[] args) {
		int ulimit = 2, olimit = 888, aktzahl = 3;
		
		while (ulimit > 1 && ulimit < olimit && aktzahl <= olimit){
			
			if (primtester(aktzahl)){
				System.out.println( "Das ist eine Primzahl : " + aktzahl);				
			}
			aktzahl++;
			
		}
		
	}
	
	static boolean primtester(int n) { //n = zahl mit der gestestet wird
		 int counter = 10; // für debug auf 10. muss aber iwi geändert werden, da sonst die ersten wegfallen
		 int n_wurz = (int) java.lang.Math.sqrt(n); //braucht nur bis zur wurzel gerechnet werden.
		 boolean istprim = true;
		 while((counter < n_wurz) && (istprim)) { //durch istprim wird das break am Ende überflüssig
		  if((n % counter) == 0){  
		       istprim = false; 
		       //break;
		  }//else istprim = true;
		  counter++; //Counter zählt die Zahl durch welche geteilt wird nur hoch.
		 }
		 return istprim;
		} //ende vom tester

}
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Also zunächst einmal könntest du direkt am Anfang (vllt. vorher noch abfragen ob n== 2 ist, wenn ja --> true returnen) abfragen ob die Zahl gerade ist, dann kannst du nämlich schon direkt false zurückgeben -->
Java:
	if (n % 2 == 0)
	    return false;
dann würde ich den Counter bei 3 los laufen lassen :D
Dann muss es in der while-Schleife auch <= heißen...(das && (istprim) kannst du weglassen, macht ja sowieso nichts /edit: ah okay, verstehe: aber kannst du trotzdem weglassen, stattdessen kannst du isPrim=false durch
Code:
return false
ersetzen, hat dann den gleichen Effekt -> weniger Code)
Dann sollte es eig. passen, auch wenn das mit der while-Schleife unleserlich ist meiner Meinung nach:oops:.
 
Zuletzt bearbeitet:

ck2003

Mitglied
Wie du auf das
Java:
int counter = 10;
gekommen bist, würde mich ja mal interessieren. Dadurch verpasst du fast alle Primzahlen.
Bspw. 705 = 3*5*47; weil du nur bist zur Wurzel untersuchst, testest du von 10-26 auf Teiler und hast keinen Treffer, also fälschlicherweise als Primzahl erkannt.

Ansonsten hat mein Vorredner fast alles erwähnt, was du ändern solltest. Aus counter++; machst du dann noch ein counter += 2; die geraden Zahlen wirst ab jetzt ja eh schon vorher ausfiltern ;)
 
D

dev

Gast
Du brauchst sowieso nicht so weit zu mit deinem counter zu laufen da du so nur Wiederholungen drin hast.

Java:
static boolean isPrim(int number){
		for(int i = 2 ; i * i <= number; i++){
			if(number % i == 0)
				return false;
		}
		return true;
	}

Gruß

dev
 

duese

Mitglied
Hey danke für Eure Hinweise!
Das Problem hat sich im Zuge der Optimierung auch erledigt.
Ich versuche trotzdem jetzt noch herauszufinden was die Ursache ist/war.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
M Primzahlen, nur jede 2te ausgeben Java Basics - Anfänger-Themen 11
L Primzahlen im Array ausgeben Java Basics - Anfänger-Themen 3
S Primzahlen bis 1000 ausgeben Java Basics - Anfänger-Themen 3
F Primzahlen in Zahlenblöcken ausgeben Java Basics - Anfänger-Themen 9
E Programm zum Primzahlen ausgeben-Fehler Java Basics - Anfänger-Themen 12
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
B Primzahlen bis 100 addieren Java Basics - Anfänger-Themen 16
H Primzahlen finden - Zeit optimieren Java Basics - Anfänger-Themen 34
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
fendix Compiler-Fehler Algorithmus zur Bestimmung von Primzahlen Java Basics - Anfänger-Themen 7
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
Java The Hutt Primzahlen - die ersten 100 Java Basics - Anfänger-Themen 17
N Erste Schritte Primzahlen-ArrayIndexOutOfBounds Java Basics - Anfänger-Themen 23
R Primzahlen Zähler Programm / Benachbarte Primzahlen Java Basics - Anfänger-Themen 30
D Klassen Primzahlen überprüfen Java Basics - Anfänger-Themen 3
I Primzahlen Java Basics - Anfänger-Themen 17
Z Rekursion Primzahlen Java Basics - Anfänger-Themen 1
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
R primzahlen im array Java Basics - Anfänger-Themen 33
T Primzahlen Fehler Java Basics - Anfänger-Themen 4
K Primzahlen Java Basics - Anfänger-Themen 6
P Primzahlen Java Basics - Anfänger-Themen 3
A Methoden Primzahlen erstellen von 1 bis 100-Codeprobleme Java Basics - Anfänger-Themen 2
H Variablenverfolgung - Primzahlen Java Basics - Anfänger-Themen 7
G Primzahlen Java Basics - Anfänger-Themen 6
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
K Methoden Primzahlen Java Basics - Anfänger-Themen 33
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
M Primzahlen - es werden alle Nicht-Primzahlen ausgegeben Java Basics - Anfänger-Themen 5
M primzahlen Java Basics - Anfänger-Themen 4
S Programm zu Ermittlung von Primzahlen Java Basics - Anfänger-Themen 14
X Primzahlen Java Basics - Anfänger-Themen 7
S Primzahlen Java Basics - Anfänger-Themen 12
B Programmierobjekt - Primzahlen Java Basics - Anfänger-Themen 2
N Primzahlen Java Basics - Anfänger-Themen 5
I Primzahlen check, String prüfen lassen. Java Basics - Anfänger-Themen 6
A OOP Programm zum bestimmen von Primzahlen, OutofBoundsException Java Basics - Anfänger-Themen 10
apple987123 Primzahlen Java Basics - Anfänger-Themen 12
A Primzahlen: ein paar offene Fragen Java Basics - Anfänger-Themen 2
T Primzahlen Java Basics - Anfänger-Themen 6
G Primzahlen Java Basics - Anfänger-Themen 18
B Primzahlen berechnen - Wieso unterschiedliche Java Basics - Anfänger-Themen 3
B Primzahlen Algorithmus - wo ist der Fehler ? Java Basics - Anfänger-Themen 2
E Primzahlen Java Basics - Anfänger-Themen 5
B Primzahlen mit Array errechnen! Java Basics - Anfänger-Themen 13
H Miller Rabin Test Primzahlen werden teilweise nicht gefunden Java Basics - Anfänger-Themen 5
M Wer kann mir bei Primzahlen helfen ? Java Basics - Anfänger-Themen 4
G Frage zur Primzahlen berechnung Java Basics - Anfänger-Themen 11
kulturfenster Primzahlen berechnen Java Basics - Anfänger-Themen 11
D Primzahlen Java Basics - Anfänger-Themen 4
N Zerlegung in Primzahlen Java Basics - Anfänger-Themen 7
F Programm Primzahlen Java Basics - Anfänger-Themen 5
J Primzahlen errechnen.ArrayLists abgleichen Java Basics - Anfänger-Themen 2
M Primzahlen Java Basics - Anfänger-Themen 6
C Primzahlen Java Basics - Anfänger-Themen 7
C Primzahlen Java Basics - Anfänger-Themen 2
S Primzahlen Java Basics - Anfänger-Themen 49
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
Glühlampe Usereingabe in der gleichen Zeile ausgeben Java Basics - Anfänger-Themen 6
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
H Minimum und Maximum ausgeben lassen Java Basics - Anfänger-Themen 7
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
I Wortkette in umgekehrter Rheinfolge + in neuer Zeile ausgeben Java Basics - Anfänger-Themen 4
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
Tommilee Char ausgeben Java Basics - Anfänger-Themen 5
K Geldbetrag in Euro + Cents ausgeben Java Basics - Anfänger-Themen 24
M geschachtelte for-Schleifen - Einmaleins ausgeben Java Basics - Anfänger-Themen 3
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
JavaBeginner22 Wort mit der größten Länge ausgeben Java Basics - Anfänger-Themen 4
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
D Grafik auf ein JPane ausgeben. Java Basics - Anfänger-Themen 6
berserkerdq2 Methodenaufrufstapel ausgeben, was ist das? Java Basics - Anfänger-Themen 2
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
Robin Gentele XML von Webserver lesen und ausgeben Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben