Primzahlen

XlabX

Mitglied
Hallo Leute,
ich möchte in meinem Programm die Anzahl der Zahlen in dem Interval 2-8 ausgeben die keine Primzahlen sind, also in diesem Fall 3. Mein Primzahlchecker in der 2. For-Schleife funktioniert einwandfrei, hab ihn schon seperat getestet. Leider kommt aber immer 21 raus. Vielleicht weiß jemand woran das liegen könnte?

Java:
import javax.swing.JOptionPane;
class primzahlen{
	
	public static void main(String[] args) {
	
	int j = 2; 
	int n = 8;
	int z = 0;
	boolean a = true;	

	for (int k = j; k < n; k++) {
	
		for (int i = 1; i < k; i++) {
			if ((k % i == 0) && (k / i != k))
			 	a = false; z++;	
	        }
	}
	JOptionPane.showMessageDialog(null, z + " Zahlen sind keine Primzahlen", "Ausgabe",      
        JOptionPane.PLAIN_MESSAGE);
	}
}
 

darekkay

Bekanntes Mitglied
Zunächst, wieso diese Zeile:
Java:
if ((k % i == 0) && (k / i != k))

Es reicht die Zahlen von 2 bis n-1 (bzw. reicht es auch bis wurzel(n) ;) ) durchzugehen, und das modulo zu überprüfen.
Dann müsstest du nach deiner if-Anweisung eine Klammer setzen, sonst wird nur a=false aufgerufen. z++ wird in deinem Code immer aufgerufen
Zu guter letzt: wozu die Variable a? Du schreibst immer wieder false rein, es gibt aber keine einzige Leseoperation.

Mein Vorschlag:
1. Funktion auslagern (prim(n) liefert true, wenn n eine Primzahl ist).
2. Eine Schleife über die Zahlen 2 bis 8 durchgehen lassen, prim für jede Zahl aufrufen, und beim true den Zähler erhöhen.

Viel Erfolg ;)
 

XHelp

Top Contributor
Weil du bei jedem Teiler ein hochzählst. Sobald ein Teiler gefunden wurde, musst du die inere Schleife abbrechen (break)
 

XlabX

Mitglied
also der vorschlag mit dem auslagern und anschließend nur für den intervall ausführen zulassen ist sicherlich gut, werde ich jetz auch direkt mal ausprobieren weils bestimmt übersichtlicher und besser gegliedert ist ;-)

ich habe auch mal grade die beiden klammern hinzugefügt und nun funktioniert es ebensfalls :)

danke an euch beide ;-)
 

ARadauer

Top Contributor
Mein Tipp: Als Anfänger überall die {} schreiben..

ganz ehrlich, ich programmier jetzt schon seit 4 Jahren beruflich Java

Java:
for (int i = 1; i < k; i++) {
            if ((k % i == 0) && (k / i != k))
                a = false; z++; 
            }
ich bin mir nicht sicher, ob das z++ noch zur inneren oder schon zur äusseren gehört... vermuttlich zur äusseren, da das ja zwei anweisungen sind und nur die nächste dazu gehört..... bin mir aber nicht sicher...
 

XlabX

Mitglied
ja da hast du auf jeden fall recht. so wie es oben in meinem quellcode steht würde es ja eh nicht funktionieren da ich sie dort vergessen habe. aber selbst wenn ich nur noch z++ da stehen habe, weil die boolsche variable ja überflüssig ist (stammt noch aus einer früheren variante, musste sie eig noch entfernen ;-) ), ist es wahrscheinlich besser wenn ichs hinschreibe damit ich alles genau zuordnen kann ;-)
 
G

Gast2

Gast
Mein Tipp: Als Anfänger überall die {} schreiben..
Auf jeden Fall... Gott hat den Java Entwickler die Curly Brackets gegeben. Also nutzt sie!
ich bin mir nicht sicher, ob das z++ noch zur inneren oder schon zur äusseren gehört... vermuttlich zur äusseren, da das ja zwei anweisungen sind und nur die nächste dazu gehört..... bin mir aber nicht sicher...

Naja, in Eclipse SHIFT+CTRL+F macht dann daraus:
Java:
		for (int i = 1; i < k; i++) {
			if ((k % i == 0) && (k / i != k))
				a = false;
			z++;
		}

Dann ist es wieder klar, aber Klammern machen es deutlich einfacher - schreiben ja hier keine python Code ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
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
M Primzahlen, nur jede 2te ausgeben Java Basics - Anfänger-Themen 11
T Primzahlen Fehler Java Basics - Anfänger-Themen 4
K Primzahlen Java Basics - Anfänger-Themen 6
L Primzahlen im Array ausgeben Java Basics - Anfänger-Themen 3
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
S Primzahlen bis 1000 ausgeben Java Basics - Anfänger-Themen 3
K Methoden Primzahlen Java Basics - Anfänger-Themen 33
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
F Primzahlen in Zahlenblöcken ausgeben Java Basics - Anfänger-Themen 9
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
E Programm zum Primzahlen ausgeben-Fehler Java Basics - Anfänger-Themen 12
S Primzahlen Java Basics - Anfänger-Themen 12
B Programmierobjekt - Primzahlen Java Basics - Anfänger-Themen 2
D Primzahlen ausgeben. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
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

Ähnliche Java Themen

Neue Themen


Oben