<?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[Rechner kann nicht alle Primzahlen berechnen]]></title><description><![CDATA[<p>Hi,</p>
<p>ich beschäftige mich momentan mit der Berechnung von Primzahlen. Laut Aufgabe soll als Input n übergeben werden und als Output die n-te Primzahl.</p>
<p>Ich dachte mir das über das Sieb des Eratosthenes zu lösen. D.h. bie zu einer bestimmten Grenze alle Primzahlen berechnen. Wenn die n-te Primzahl dabei ist, diese ausgeben. Wenn nicht, von neuem beginnen, nur die Grenze höher setzen.</p>
<p>Ich hatte im Thread &quot;Sieb des Eratosthenes&quot; schon meine ersten Ansätze kundgetan und auf Anregung korriert. Nun stürzt mein Microsoft Visual C++ 6.0 ab bzw. gibt Fehlermeldung, sobald er die Primzahlen aus einem Bereich größer 32 berechnen soll. Das ist doch ein Witz!!!!!. Ist das bei euch auch so.</p>
<p>Leider bin ich noch Anfänger. Der Algorithmus ist sicherlich nicht der effiktivste, aber ich wollte von meinen Ideen her ertsmal Schritt für SChritt arbeiten.</p>
<p>Also frage an euch: Ab welchen Bereich kann euer Rechner die ausführbare Datei nicht mehr ausführen? Und wenn sich der Rechner normal verhält. Was bedeutet die Fehlermeldung von MS Visual C++ 6.0 ?</p>
<p>Ihr müßt den Wert der Variablen &quot;size&quot; ändern, um den Bereich zu vergrößern bzw. verkleinern.</p>
<p>mfg</p>
<p>Alex</p>
<p>//es sollen durch eingabe die ersten n Primzahlen ausgegeben werden<br />
//doch zuerst Sieb des Erathostenes</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;math.h&gt; //Um wurzel zu ziehen<br />
//#include &quot;header&quot;????</p>
<p>using namespace std;</p>
<p>int main ()<br />
{<br />
int size= 50;<br />
int *array= new int[size+1];</p>
<p>for (int i= 0; i&lt; size+1 ; i++)<br />
array[i]= 1; //array mit einsen füllen</p>
<p>//int boundary= (int) srqt(size); //es reicht nur bis zur Wurzel aus size<br />
int boundary= size/2;</p>
<p>for (int j=2; j &lt; boundary; j++)<br />
{<br />
for (int n=2; n&lt; (boundary); n++)<br />
{<br />
array[j*n]= 0; //Vielfache auf Null setzen<br />
}<br />
}</p>
<p>int counter= 0;</p>
<p>for ( i= 2; i&lt; size ; i++) //ab 2 sollen die Primzahlen getestet werden<br />
{ // Bis Vektorstelle array[size]<br />
if (array[i] == 1)<br />
counter++;<br />
}</p>
<p>for (i= 2; i &lt;size; i++)<br />
{<br />
if(array[i] == 1)<br />
cout &lt;&lt; i &lt;&lt; endl;<br />
}</p>
<p>cout &lt;&lt; &quot;Anzahl = &quot; &lt;&lt; counter &lt;&lt; &quot; &quot; &lt;&lt; endl;</p>
<p>return 0;</p>
<p>}</p>
<p>/**</p>
<p>//stopp -- bishierher Sieb des Erathostenes<br />
if( counter&lt; task)<br />
{<br />
size= size*size;<br />
calcultate(size); //nochmal alles von vorn bloss mit größerer Grenze<br />
}<br />
else<br />
{<br />
for(int i= 1; i&lt;= counter; i++)<br />
{<br />
if(array[i] == 1)<br />
{<br />
cout &lt;&lt; i &lt;&lt; endl;<br />
}</p>
<p>}</p>
<p>}</p>
<p>**/</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/121832/rechner-kann-nicht-alle-primzahlen-berechnen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 20:56:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/121832.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Sep 2005 18:11:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 18:11:34 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich beschäftige mich momentan mit der Berechnung von Primzahlen. Laut Aufgabe soll als Input n übergeben werden und als Output die n-te Primzahl.</p>
<p>Ich dachte mir das über das Sieb des Eratosthenes zu lösen. D.h. bie zu einer bestimmten Grenze alle Primzahlen berechnen. Wenn die n-te Primzahl dabei ist, diese ausgeben. Wenn nicht, von neuem beginnen, nur die Grenze höher setzen.</p>
<p>Ich hatte im Thread &quot;Sieb des Eratosthenes&quot; schon meine ersten Ansätze kundgetan und auf Anregung korriert. Nun stürzt mein Microsoft Visual C++ 6.0 ab bzw. gibt Fehlermeldung, sobald er die Primzahlen aus einem Bereich größer 32 berechnen soll. Das ist doch ein Witz!!!!!. Ist das bei euch auch so.</p>
<p>Leider bin ich noch Anfänger. Der Algorithmus ist sicherlich nicht der effiktivste, aber ich wollte von meinen Ideen her ertsmal Schritt für SChritt arbeiten.</p>
<p>Also frage an euch: Ab welchen Bereich kann euer Rechner die ausführbare Datei nicht mehr ausführen? Und wenn sich der Rechner normal verhält. Was bedeutet die Fehlermeldung von MS Visual C++ 6.0 ?</p>
<p>Ihr müßt den Wert der Variablen &quot;size&quot; ändern, um den Bereich zu vergrößern bzw. verkleinern.</p>
<p>mfg</p>
<p>Alex</p>
<p>//es sollen durch eingabe die ersten n Primzahlen ausgegeben werden<br />
//doch zuerst Sieb des Erathostenes</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;math.h&gt; //Um wurzel zu ziehen<br />
//#include &quot;header&quot;????</p>
<p>using namespace std;</p>
<p>int main ()<br />
{<br />
int size= 50;<br />
int *array= new int[size+1];</p>
<p>for (int i= 0; i&lt; size+1 ; i++)<br />
array[i]= 1; //array mit einsen füllen</p>
<p>//int boundary= (int) srqt(size); //es reicht nur bis zur Wurzel aus size<br />
int boundary= size/2;</p>
<p>for (int j=2; j &lt; boundary; j++)<br />
{<br />
for (int n=2; n&lt; (boundary); n++)<br />
{<br />
array[j*n]= 0; //Vielfache auf Null setzen<br />
}<br />
}</p>
<p>int counter= 0;</p>
<p>for ( i= 2; i&lt; size ; i++) //ab 2 sollen die Primzahlen getestet werden<br />
{ // Bis Vektorstelle array[size]<br />
if (array[i] == 1)<br />
counter++;<br />
}</p>
<p>for (i= 2; i &lt;size; i++)<br />
{<br />
if(array[i] == 1)<br />
cout &lt;&lt; i &lt;&lt; endl;<br />
}</p>
<p>cout &lt;&lt; &quot;Anzahl = &quot; &lt;&lt; counter &lt;&lt; &quot; &quot; &lt;&lt; endl;</p>
<p>return 0;</p>
<p>}</p>
<p>/**</p>
<p>//stopp -- bishierher Sieb des Erathostenes<br />
if( counter&lt; task)<br />
{<br />
size= size*size;<br />
calcultate(size); //nochmal alles von vorn bloss mit größerer Grenze<br />
}<br />
else<br />
{<br />
for(int i= 1; i&lt;= counter; i++)<br />
{<br />
if(array[i] == 1)<br />
{<br />
cout &lt;&lt; i &lt;&lt; endl;<br />
}</p>
<p>}</p>
<p>}</p>
<p>**/</p>
]]></description><link>https://www.c-plusplus.net/forum/post/881601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881601</guid><dc:creator><![CDATA[Mole]]></dc:creator><pubDate>Tue, 27 Sep 2005 18:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 18:22:47 GMT]]></title><description><![CDATA[<p>Mole schrieb:</p>
<blockquote>
<p>Nun stürzt mein Microsoft Visual C++ 6.0 ab bzw. gibt Fehlermeldung, sobald er die Primzahlen aus einem Bereich größer 32 berechnen soll. Das ist doch ein Witz!!!!!</p>
</blockquote>
<p>Nein, ein Witz ist das nicht. Vermutlich eher irgendein Fehler in Deinem Programm. Verrate doch mal welche Fehlermeldung Du bekommst.</p>
<p>Bist Du schonmal mit dem Debugger durchgesteppt? (Artikel dazu gibt's neuerdings im Magazin!)<br />
Wo bricht er denn da ab?</p>
<p>MfG Jester</p>
]]></description><link>https://www.c-plusplus.net/forum/post/881613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881613</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Tue, 27 Sep 2005 18:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 18:28:48 GMT]]></title><description><![CDATA[<p>Er sagt:</p>
<p>Primzahlen.exe hat ein Problem festgestellt und muss beendet werden.</p>
<p>Mit dem Debugger hab ich es noch nicht versucht, weil ich nicht weiß, wie er zu handeln ist. Mit F10 kann man jede einzelne Aneisung anspringen.</p>
<p>Wo ist den das Magazin???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/881620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881620</guid><dc:creator><![CDATA[Mole]]></dc:creator><pubDate>Tue, 27 Sep 2005 18:28:48 GMT</pubDate></item><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 18:39:47 GMT]]></title><description><![CDATA[<p>Du kannst als Obergrenze nicht einfach die Wurzel durch die halbe Größe ersetzen. Damit ist boundary bei dir 25, und 25 * 25 ist weit über das Ende deines Arrays hinaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/881627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881627</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 27 Sep 2005 18:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 19:20:50 GMT]]></title><description><![CDATA[<p>Ja ok. Ich hab es verbessert. Es ist nicht boundary, der den Fehler macht, sondern die Multiplikation auf Vielfache von j. so greif ich durchaus, jenseits aller arraygrenzen hinweg.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
...</p>
<p>for (int j=2; j &lt; boundary; j++)<br />
{<br />
for (int n=2; n&lt; (boundary); n++)<br />
{<br />
if (n<em>j &lt; size)<br />
{<br />
k= n</em>j;<br />
array[k]= 0; //Vielfache auf Null setzen<br />
}</p>
<p>}<br />
}</p>
<p>...</p>
<p>Merci</p>
]]></description><link>https://www.c-plusplus.net/forum/post/881652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881652</guid><dc:creator><![CDATA[Mole]]></dc:creator><pubDate>Tue, 27 Sep 2005 19:20:50 GMT</pubDate></item><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 19:26:27 GMT]]></title><description><![CDATA[<p>Das Magazin findest du unter den anderen Foren in der Forenübersicht, über den FAQs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/881656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881656</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 27 Sep 2005 19:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 19:35:13 GMT]]></title><description><![CDATA[<p>das wochenende ist gerettet <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="🙂"
    /> <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="🙂"
    /> <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/881666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881666</guid><dc:creator><![CDATA[Mole]]></dc:creator><pubDate>Tue, 27 Sep 2005 19:35:13 GMT</pubDate></item><item><title><![CDATA[Reply to Rechner kann nicht alle Primzahlen berechnen on Tue, 27 Sep 2005 19:40:56 GMT]]></title><description><![CDATA[<p>Mole schrieb:</p>
<blockquote>
<p>Es ist nicht boundary, der den Fehler macht, sondern die Multiplikation auf Vielfache von j.</p>
</blockquote>
<p>Sicher ist es boundary. Dadurch werden j und n zu groß. Dein &quot;Bugfix&quot; besteht nur darin, dass du in der Schleife den Index prüfst - was du gar nicht tun müsstest, wenn du boundary richtig berechnen würdest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/881673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/881673</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 27 Sep 2005 19:40:56 GMT</pubDate></item></channel></rss>