<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Anfängerproblem - Primzahlenalgorithmus]]></title><description><![CDATA[<p>Hallo liebes Forum,<br />
ich bin neu hier und muss gleich mit einer Frage nerven <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Ich habe beschlossen C++ zu lernen und habe mir ein Buch gekauft. Das war relativ spontan, aber es macht mir sehr Spaß und ich wollte nun ein einfaches Programm schreiben, welches mir Primzahlen bis zu einer gewissen Grenze ausgibt.</p>
<p>Ich habe folgenden Code (Natürlich für euch mit Kommentaren versehen):</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cmath&gt;
using namespace std;

int main()
{
		int p=2; //mögliche Primzahl
		int g; // Grenze bis zu der Primzahlen berechnet werden
		int q=0; // Variable für Schleifenbedingung
		int t=2; // Teiler
		int e;
		cout &lt;&lt; &quot;Bitte Grenze eingeben:&quot; ;
		cin &gt;&gt; g;

		while(q==0)
		{	e= (p%t); //Wenn &quot;p&quot; eine Primzahl wäre, dürfte &quot;e&quot; nie 0 werden

		if(e==0) // &quot;e&quot; ist 0, also ist &quot;p&quot; keine Primzahl; &quot;p&quot; wird erhöht und &quot;t&quot; wieder 2 gesetzt; Schleife fängt von vorne an
			{++p; t=2;}

		if((e!=0) || (t&gt;=3)) // Bedingung für bessere Laufzeit, alle geraden Teiler werden vermieden
			{t=t+2;}

		if((e!=0) || (t=2)) // Sollte nur einmal pro Zahl für &quot;p&quot; erfüllt werden, dass erste Mal, wenn e!=0 ist könnte p eine Primzahl sein
			{++t;}			// teiler wird erhöht, um p weiter zu prüfen

		if(t&gt;=(p/2)) // wenn t schließlich halb so groß ist wie p und nie e==0 war, ist p eine Primzahl, sie wird ausgegeben
			{cout &lt;&lt; p &lt;&lt; endl; p++; t=2;}

		if(g==p) // Wenn die Grenze g erreicht ist wird q um 1 erhöht und die Schleife stoppt
		{q++;}
		}
		system(&quot;Pause&quot;);

}
</code></pre>
<p>Jetzt kommt mein Problem: Das Programm startet zwar einwandfrei und gibt auch alle Primzahlen aus (zumindest bis zu dem Punkt zu dem ich das jetzt im Kopf beurteilen konnte). ABER es gibt auch Zahlen wie 10 und 16 aus.<br />
Meine Frage: Warum werden diese Zahlen nicht als &quot;Nicht-Primzahlen&quot; erkannt...</p>
<p>Ich hoffe ihr könnt mir helfen, ich denke ich habe irgendwo einfach einen Denkfehler...</p>
<p>Vielen Dank,<br />
Niklas</p>
<p>PS: Sobald ich mich halbwegs auskenne, werde ich mich natürlich mit Hilfe anderer revanchieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/321772/anfängerproblem-primzahlenalgorithmus</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 04:35:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/321772.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Nov 2013 20:47:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 20:47:25 GMT]]></title><description><![CDATA[<p>Hallo liebes Forum,<br />
ich bin neu hier und muss gleich mit einer Frage nerven <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Ich habe beschlossen C++ zu lernen und habe mir ein Buch gekauft. Das war relativ spontan, aber es macht mir sehr Spaß und ich wollte nun ein einfaches Programm schreiben, welches mir Primzahlen bis zu einer gewissen Grenze ausgibt.</p>
<p>Ich habe folgenden Code (Natürlich für euch mit Kommentaren versehen):</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cmath&gt;
using namespace std;

int main()
{
		int p=2; //mögliche Primzahl
		int g; // Grenze bis zu der Primzahlen berechnet werden
		int q=0; // Variable für Schleifenbedingung
		int t=2; // Teiler
		int e;
		cout &lt;&lt; &quot;Bitte Grenze eingeben:&quot; ;
		cin &gt;&gt; g;

		while(q==0)
		{	e= (p%t); //Wenn &quot;p&quot; eine Primzahl wäre, dürfte &quot;e&quot; nie 0 werden

		if(e==0) // &quot;e&quot; ist 0, also ist &quot;p&quot; keine Primzahl; &quot;p&quot; wird erhöht und &quot;t&quot; wieder 2 gesetzt; Schleife fängt von vorne an
			{++p; t=2;}

		if((e!=0) || (t&gt;=3)) // Bedingung für bessere Laufzeit, alle geraden Teiler werden vermieden
			{t=t+2;}

		if((e!=0) || (t=2)) // Sollte nur einmal pro Zahl für &quot;p&quot; erfüllt werden, dass erste Mal, wenn e!=0 ist könnte p eine Primzahl sein
			{++t;}			// teiler wird erhöht, um p weiter zu prüfen

		if(t&gt;=(p/2)) // wenn t schließlich halb so groß ist wie p und nie e==0 war, ist p eine Primzahl, sie wird ausgegeben
			{cout &lt;&lt; p &lt;&lt; endl; p++; t=2;}

		if(g==p) // Wenn die Grenze g erreicht ist wird q um 1 erhöht und die Schleife stoppt
		{q++;}
		}
		system(&quot;Pause&quot;);

}
</code></pre>
<p>Jetzt kommt mein Problem: Das Programm startet zwar einwandfrei und gibt auch alle Primzahlen aus (zumindest bis zu dem Punkt zu dem ich das jetzt im Kopf beurteilen konnte). ABER es gibt auch Zahlen wie 10 und 16 aus.<br />
Meine Frage: Warum werden diese Zahlen nicht als &quot;Nicht-Primzahlen&quot; erkannt...</p>
<p>Ich hoffe ihr könnt mir helfen, ich denke ich habe irgendwo einfach einen Denkfehler...</p>
<p>Vielen Dank,<br />
Niklas</p>
<p>PS: Sobald ich mich halbwegs auskenne, werde ich mich natürlich mit Hilfe anderer revanchieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367499</guid><dc:creator><![CDATA[NNiklas]]></dc:creator><pubDate>Sat, 23 Nov 2013 20:47:25 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 21:00:07 GMT]]></title><description><![CDATA[<p>1. Benne mal bitte deine Variablen etwas Aussagekräftiger. Der Name sollt einen Hinweis darauf geben, wofür sie denn da ist.</p>
<p>2. Ich weiß ja nicht ob du da so aus deinem Buch lernst, aber die Einrückung ist nicht so optimal, bzw. deine {}.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367503</guid><dc:creator><![CDATA[hardware]]></dc:creator><pubDate>Sat, 23 Nov 2013 21:00:07 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 21:06:32 GMT]]></title><description><![CDATA[<p>1. Tut mir Leid, ich hatte gedacht, bei so wenigen Variablen reicht ein Kommentar oben wo sie definiert wurden...<br />
2. Ich fand so sah es relativ übersichtlich aus..und funktionieren tuts ja auch, hast du einen Verbesserungsvorschlag?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367504</guid><dc:creator><![CDATA[NNiklas]]></dc:creator><pubDate>Sat, 23 Nov 2013 21:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 21:06:55 GMT]]></title><description><![CDATA[<p>hardware schrieb:</p>
<blockquote>
<p>1. Benne mal bitte deine Variablen etwas Aussagekräftiger. Der Name sollt einen Hinweis darauf geben, wofür sie denn da ist.</p>
</blockquote>
<p>Dies! Dein Code ist furchtbar schwer zu lesen.</p>
<p>Mach aus deinen || mal &amp;&amp; und aus dem t=2 in Zeile 24 ein t==2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367505</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 23 Nov 2013 21:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 21:11:53 GMT]]></title><description><![CDATA[<p>DANKESCHÖN! Es hat geklappt &quot;||&quot; zu &quot;&amp;&amp;&quot; hat es dann doch gemacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Und tatsächlich bin ich nicht Schuld, die Internetseite von der ich den Operator und seine Funktion hatte, ist fehlerhaft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":O"
      alt="😮"
    /></p>
<p>Tut mir Leid, nächstes Mal, mach ich den leserliche, einfach die Variablen besser benennen? Ich war wohl zu faul ihnen längere Namen zu geben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Vielen Dank nochmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367509</guid><dc:creator><![CDATA[NNiklas]]></dc:creator><pubDate>Sat, 23 Nov 2013 21:11:53 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 21:18:00 GMT]]></title><description><![CDATA[<p>NNiklas schrieb:</p>
<blockquote>
<p>Und tatsächlich bin ich nicht Schuld, die Internetseite von der ich den Operator und seine Funktion hatte, ist fehlerhaft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":O"
      alt="😮"
    /></p>
</blockquote>
<p>Das kann ich kaum glauben. Das ist so einfach, das kann kaum jemand verwechseln. Welche Seite ist das und was sagt sie über die Bedeutung?</p>
<p>Allgemein solltest du Wert auf gutes Lehrmaterial legen. Nichts ist schlimmer beim Lernen, als falsche oder schlechte Techniken zu lernen. Die wird man nämlich nur sehr schwer wieder los, wenn man sie sich angewöhnt hat. Gerade auf dem C++-Büchermarkt und im (deutschsprachigen) Internet schwirrt einiger Müll rum. Siehe meine Signatur für Tipps zu guten Büchern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367512</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 23 Nov 2013 21:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 21:25:16 GMT]]></title><description><![CDATA[<p>Die Seite finde ich nicht mehr, ist schon in paar Tage her.<br />
Thema und Überschrift war was mit 2 Bedingungen für if und der Autor hat die beiden Bedingungen mit &quot;||&quot; verknüpft. Vielleicht habe ich mich verlesen, vielleicht war die Überschrift zweideutig, vielleicht sogar falsch. Wer weiß, was zählt ist, dass dieser doofe Code endlich läuft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ja, ich hätte wirklich mein Buch zu rate ziehen sollen. Habe das hier</p>
<p><a href="http://www.amazon.de/Visual-2010-umfassende-Handbuch-Computing/dp/3836216396/ref=sr_1_15?ie=UTF8&amp;qid=1385241879&amp;sr=8-15&amp;keywords=c%2B%2B+galileo" rel="nofollow">http://www.amazon.de/Visual-2010-umfassende-Handbuch-Computing/dp/3836216396/ref=sr_1_15?ie=UTF8&amp;qid=1385241879&amp;sr=8-15&amp;keywords=c%2B%2B+galileo</a></p>
<p>Bin eigentlich vollkommen zufrieden bis jetzt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367514</guid><dc:creator><![CDATA[NNiklas]]></dc:creator><pubDate>Sat, 23 Nov 2013 21:25:16 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 21:52:34 GMT]]></title><description><![CDATA[<p>NNiklas schrieb:</p>
<blockquote>
<p>Thema und Überschrift war was mit 2 Bedingungen für if und der Autor hat die beiden Bedingungen mit &quot;||&quot; verknüpft.</p>
</blockquote>
<p>Das kann ja auch gut sein, schließlich gibt es viele Möglichkeiten, mehrere Bedingungen zu verknüpfen. Das scheint dir gar nicht bewusst zu sein. || bedeutet, das die eine ODER die andere Bedingung wahr sein muss (oder auch beide), damit der Gesamtausdruck wahr ist. &amp;&amp; bedeutet, dass die eine UND die andere Bedingung wahr sein müssen.</p>
<blockquote>
<p>Ja, ich hätte wirklich mein Buch zu rate ziehen sollen. Habe das hier</p>
<p><a href="http://www.amazon.de/Visual-2010-umfassende-Handbuch-Computing/dp/3836216396/ref=sr_1_15?ie=UTF8&amp;qid=1385241879&amp;sr=8-15&amp;keywords=c%2B%2B+galileo" rel="nofollow">http://www.amazon.de/Visual-2010-umfassende-Handbuch-Computing/dp/3836216396/ref=sr_1_15?ie=UTF8&amp;qid=1385241879&amp;sr=8-15&amp;keywords=c%2B%2B+galileo</a></p>
</blockquote>
<p>Dies speziell kenne ich nicht. Der Verlag ist verdächtig, das er viele bekannt schlechte Bücher verlegt. Das heißt natürlich nicht, dass er <em>nur</em> schlechte Bücher verlegt, aber zumindest, dass es mit der Qualitätssicherung dort nicht so gut bestellt ist.</p>
<blockquote>
<p>Bin eigentlich vollkommen zufrieden bis jetzt!</p>
</blockquote>
<p>Das Problem dabei ist, das ein Anfänger gar nicht beurteilen kann, ob ein Buch fachlich gut ist. Dummerweise sind das naturgemäß die Leute, die auch Kritiken über die Bücher bei Amazon &amp; Co. schreiben, da sie die Kunden für diese Bücher sind.<br />
<a href="http://xkcd.com/937/" rel="nofollow">http://xkcd.com/937/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367519</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 23 Nov 2013 21:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem - Primzahlenalgorithmus on Sat, 23 Nov 2013 22:05:30 GMT]]></title><description><![CDATA[<blockquote>
<p>Das scheint dir gar nicht bewusst zu sein.</p>
</blockquote>
<p>Doch das ist mir jetzt durchaus bewusst. Tatsächlich enthält mein Buch auch Operatorenlisten.</p>
<p>Ich wollte ja nur ein bisschen Hilfe... Du demotivierst mich irgendwie ein bisschen. Dass ich nicht alles über C++ und Programmieren generell weiß nur weil ich die ersten 100 Seiten in einem beliebigen Buch darüber gelesen habe ist mir bewusst und wäre ja auch lächerlich dies anzunehmen. Trotzdem sollte es nicht Ziel sein, wenn ich um Hilfe in einem Forum suche, sich auf einige meiner, sicherlich auch fehlerhaften, Aussagen zu konzentrieren und diese zu ausschließlich zu kritisieren. Ein Hinweis auf meine Fehler und ein Tipp fürs nächste Mal würden vollkommen langen.</p>
<p>Ich danke dir trotzdem für die Hilfe bei meinem kleinen Code. Ist schön, wenn das erste Programm, was man probiert zu schreiben, auch klappt.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367520</guid><dc:creator><![CDATA[NNiklas]]></dc:creator><pubDate>Sat, 23 Nov 2013 22:05:30 GMT</pubDate></item></channel></rss>