Variablenverfolgung - Primzahlen

Abend Community,

hab ein Problem bei nem Programm, welches die Primzahlen bis 100 ausgibt mit der Nummer von 0 an. Und zwar dürfte ja die 9 nicht ausgegeben werden (weil keine Primzahl), der Code an sich funzt, nur die Variablenverfolgung kann ich so nicht nachvollziehen, schauts euch an:

Java:
public class Mystery
{
	public static void main (String [] args)
	{
		boolean passt;
		int z=0;
		for (int i=2; i<100; i++)
		{
			passt=check(i);
			if (passt)
			{
				++z;
				System.out.println(z+". "+i);
			}
		}
	}

	public static boolean check (int x)
	{
		for (int j=2; j<x; j++)				
		{
			int t=x%j;
			if (t==0)
			{
			return false;
			}
		}
			return true;   	
	}
}

Was passiert bei i=9? t==1 -> müsste ja true für passt annehmen und "5.9" ausgeben!

MfG
André
 

faraday

Mitglied
Hey André,
erstmal eine sehr amüsante Klassennamenwahl. :D

Die 9 wird nicht ausgegeben, aufgrund der definierten Modulo-Operation. Das Ergebnis einer Modulorechnung ist immer der Rest. Ist der Rest ungleich 0, so ist die Zahl (hier x) nicht durch die andere Zahl (hier j) teilbar. Falls das Ergebnis eine 0 ist, so wäre der Rest null und die Zahl ist somit ein Teiler von x.

Oder hab ich dein Problem jetzt falsch verstanden?

Liebe Grüße fara

P.S. Du kannst by the way die Berechnung beschleunigen, indem du die Schleife in "check" nicht bis x durchlaufen lässt, sondern nur bis Wurzel x. Damit hast du alle möglichen Teiler ein-/ausgeschlossen.
 
Zuletzt bearbeitet:
Grüß dich Kollege,

der Hintergrund ist der, ich hab weder Programm, noch Absicht, noch Name erstellt, war 'nur' ein Tutorium. Kannst du es evtl. anhand der Begriffe passt und true und false erklären? Ich hätte halt gerne die Variablenverfolgung kapiert.

Es ist doch 9%2=1 oder steht für 2 was anderes?
Wenn passt true ist, geht er doch in die if-Verzweigung, wenn mich nicht alles täuscht, da ein Rest da ist -> Folglich true oder?

MfG
André
 
Zuletzt bearbeitet:

faraday

Mitglied
Ich verstehe deine Frage nicht. Vielleicht solltest du dich noch einmal mit Schleifen auseinandersetzen und der return-Funktionalität bei Methoden. :-/

Liebe Grüße
 

consider

Mitglied
Du übersiehst, dass
Java:
return true;
ausserhalb der For-Schleife steht, also nur zum Zuge kommt, wenn die For-Schleife durch die Bedingung im Schleifenkopf beendet wird. Da aber schon beim zweiten Durchlauf "false" zurückgegeben wird, wird der komplette Lauf hier beeendet.

Es wird halt versucht durch jede Zahl zu teilen, ausser durch die Zahl selbst. Erst wenn das nicht klappt, handelt es sich um eine Primzahl. Mit anderer Einrückung wird das vielleicht klarer.

Java:
public static boolean check(int x) {

		for (int j = 2; j < x; j++) {
			int t = x % j;
			if (t == 0) {
				return false;
			}
		}
		return true;  //Steht ausserhalb der For-Schleife und nicht als Else-Block hinter dem If.
	}
 
Oh mein Gott, danke, wie leichtsinnig... Stimmt, denn 3 ist ja immer noch kleiner als 9^^
Und bei 5 dachte ich vorher: 2<5 5:2=2 R1 -> also true.
Aber es ist ja: 5%2=1, 5%3=1, 5%4=1, 5%5 geht nicht da 5 nicht kleiner 5 ist -> true (nicht weil t 1 ist, sondern weil t nie 0 wird)
 
Ä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
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
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
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