Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig
-
ich verstehe die erste if Verzweigung nicht
if (x%i == 0 && x != i) break;
x % i
ist eine sog. Restklassendivision. Das Ergebnis davon ist der Rest der bei der Divisionx / i
übrig bleibt. Wenn dieser Null ist, dann heisst dasx
ist durchi
teilbar.Die Bedingung ist also: "wenn
x
durchi
teilbar ist, undx
ungleichi
ist".
Wenn diese Bedingung zutrifft, dann wirdbreak
ausgeführt.break
bricht die (aktuelle, innerste) Schleife ab. Und zwar sofort, also ohne dass die Befehle die dahinter noch kommen würden für den aktuellen Schleifendurchlauf noch ausgeführt werden.
-
@hustbaer ich danke dir jetzt habe ich es verstanden
-
@franklin sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
Und so wie ich die for schleifen verstehe müssten doch i und x immer gleich groß sein ?
Da steht ja nicht
i=x
sonderngib i nacheinander die Werte von 2 bis x
-
@hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
x % i
ist eine sog. Restklassendivision.Google sagt dazu:
About 70 results (0,40 seconds)
Stichprobenartig überprüft ist bei der Hälfte davon die Division von Restklassen gemeint und nicht die modulo-Operation.
-
@Bashar
Wenn du nen Besseren Begriff dafür weisst, lass es mich wissen
Soll ich einfach Modulo-Operation sagen?
-
Jepp, oder Division mit Rest.
-
Gut. Ich werde versuchen es mir zu merken
Wobei "Division mit Rest" ist auch Quatsch. Das würde ja bedeuten dass man sowohl das Ergebnis der Division als auch den Rest zurückbekommt. Was man ja nicht tut.
-
@hustbaer Wie wäre es mit "Divisionsrest"? Oder "Rest der ganzzahligen Division"?
"Restklassendivision" erschien mir auch komisch. Das wäre ja "Division von Restklassen", aber eine Restklasse ist ja ein mathematischer Begriff (Menge von Zahlen, die mod N denselben Rest haben), also zum Beispiel sind alle geraden Zahlen eine Restklasse (und zwar die, die zu 0 äquivalent sind in mod 2).
-
@wob
Najaa % b
ermittelt halt die Restklasse einer Zahl a bei Division durch b."Restklassendivision" erschien mir auch komisch. Das wäre ja "Division von Restklassen",
Ne, so strikt ist das im Deutschen nicht. Faschingsumzug heisst ja auch nicht dass der Fasching rumläuft und Existenzangst heisst weder dass die Existenz Angst hat noch dass man Angst hat zu existieren.
-
@hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
Wobei "Division mit Rest" ist auch Quatsch. Das würde ja bedeuten dass man sowohl das Ergebnis der Division als auch den Rest zurückbekommt. Was man ja nicht tut.
Das kommt auf den Kontext an. Zumindest auf x86 und x64 bekommt man bei einer Division den remainder als Abfallprodukt. (div, idiv)
-
@Swordfish Hätte noch nicht gesehen dass man
idiv
als%
schreiben würde
-
@hustbaer Dann ist ja gcc ganz mutig
-
@Swordfish Seit wann kann GCC rückwärts übersetzen? Und seit wann ist übersetzen gleichbedeutend mit schreiben? Arrrrr.
-
@hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
@wob
Najaa % b
ermittelt halt die Restklasse einer Zahl a bei Division durch b.Nur einen Vertreter der Restklasse. Und zwar nicht irgendeinen, sondern genau den Rest bei der Division von a durch b, aber ich wiederhole mich.
-
@hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
@Swordfish Seit wann kann GCC rückwärts übersetzen? Und seit wann ist übersetzen gleichbedeutend mit schreiben? Arrrrr.
magic.
-
Das ist auf quasi auf jeder Plattform so, weil im Divisionsalgorithmus nunmal der Rest berechnet wird. Er ist immer als Übertrag für die nächste Stelle nötig.
-
@Bashar sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
@hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
@wob
Najaa % b
ermittelt halt die Restklasse einer Zahl a bei Division durch b.Nur einen Vertreter der Restklasse. Und zwar nicht irgendeinen, sondern genau den Rest bei der Division von a durch b, aber ich wiederhole mich.
Wenn du's so genau nehmen willst dann wird das kleinse Element der Restklasse ermittelt. Auf jeden Fall etwas das eindeutig die Restklasse identifiziert.
-
@TGGC sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
Das ist auf quasi auf jeder Plattform so, weil im Divisionsalgorithmus nunmal der Rest berechnet wird. Er ist immer als Übertrag für die nächste Stelle nötig.
Nur FYI: Ich hab mich auf den
%
Operator von C++ bezogen. Und der gibt nunmal nur ein Ergebnis zurück, und das ist nur der Rest, ohne das Ergebnis der Division. Was die CPU dann im übersetzten Programm macht ist egal wenn es lediglich darum geht jmd. zu erklären was in C++ der%
Operator macht.
-
Was der Operator "macht" und welches Ergebnis er liefert sind für manche Personen aber verschiedene Sachen, da es auch immer Leute gibt, die sich für Interna interessieren. Ich kann also durchaus nachvollziehen, wenn eine Antwort wie "% ist eine Divsion, die den Rest zurück gibt" in bestimmten Kontexten von manchen als eine technisch logischere Antwort angesehen wird.
-
@Swordfish sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
Das kommt auf den Kontext an.
@hustbaer sagte in Die Ausgabe von Primzahlen bis 100. Kann mir jemand den genauen Ablauf erklären ich verstehe das nicht richtig:
Arrrrr.