<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>muvik-multigrid &#187; Eratosthenes</title>
	<atom:link href="http://www.muvik.de/tag/eratosthenes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muvik.de</link>
	<description>open source - engineering - programming</description>
	<lastBuildDate>Wed, 28 Jul 2010 07:56:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Projecteuler: Lösung zu Problem 10</title>
		<link>http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/</link>
		<comments>http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 07:42:12 +0000</pubDate>
		<dc:creator>Viktor Müller</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Eratosthenes]]></category>
		<category><![CDATA[Primzahlen]]></category>
		<category><![CDATA[Projecteuler]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.muvik.de/?p=1384</guid>
		<description><![CDATA[Primzahlen sind das Thema des Projecteuler-Problems Nummer 10. Nach dem 3. und 7. Problem befasst sich nun auch das 10. Problem mit den beliebten Zahlen, die durch beinahe nichts teilbar sind. In diesem Artikel wird, wie gewohnt, das Problem eingegrenzt und mit Python gelöst. Problemvorstellung Wer die Probleme 3 und 7 bereits gelöst hat, wird [...]]]></description>
			<content:encoded><![CDATA[<img class="cat-img-wide" alt="Projecteuler: Lösungen mit Python und C++" src="http://muvik.de/categorie_images/projecteuler_serie_start.gif" title="Projecteuler: Lösungen mit Python und C++" width="443" height="98" />
<p class="preview">Primzahlen sind das Thema des Projecteuler-Problems Nummer 10. Nach dem 3. und 7. Problem befasst sich nun auch das 10. Problem mit den beliebten Zahlen, die durch beinahe nichts teilbar sind. In diesem Artikel wird, wie gewohnt, das Problem eingegrenzt und mit Python gelöst.</p>
<p><span id="more-1384"></span></p>
<h3>Problemvorstellung</h3>
<p>Wer die Probleme <a href="http://www.muvik.de/2010/04/03/projecteuler-loesung-zu-problem-3/">3</a> und <a href="http://http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/">7</a> bereits gelöst hat, wird mit dem <a href="http://projecteuler.net/index.php?section=problems&#038;id=10">10. Projecteuler-Problem</a> keine Mühe haben. Wieder geht es um Primzahlen und wieder kann der Sieb des Eratosthenes verwendet werden, um die Lösung zu finden.</p>
<p>Ins Deutsche übersetzt lautet die Aufgabenstellung: </p>
<p><strong>Finde die Summe aller Primzahlen, die kleiner als zwei Millionen sind.</strong></p>
<p>Mit dem Hintergrundwissen aus den bereits gelösten Problemen, bräuchte ich eigentlich keinen zusätzlichen Artikel mehr zu verfassen. Es sind bereits alle Mittel, die hierzu benötigt werden, bereits vorgestellt und mit Erfolg verwendet worden.</p>
<p>Aus diesem Grund lässt es sich nicht wirklich nachvollziehen, warum zum heutigen Zeitpunkt lediglich 47699 der insgesamt 114874 Projecteuler-Teilnehmer eine richtige Lösung zu diesem Problem einreichen konnten. Wahrscheinlich sind sie zeitlich verhindert gewesen <img src='http://www.muvik.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> !</p>
<h3>Problemeingrenzung</h3>
<p>Obwohl alle Tipps und Tricks zur vollständigen und erfolgreichen Lösung des Problems bereits im Rahmen dieser Artikelserie genannt und beschrieben wurden, möchte ich einige Tatsachen dennoch der Vollständigkeit wegen wiederholen.</p>
<p>In erster Linie ist das wichtiges Werkzeug, welches bei bisher allen Problemen mit Primzahlen bei mir zum Einsatz kam und es auch diesmal tut <a href="http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes">das Siebes von Eratosthenes</a>. Hierbei handelt es sich um eine Methode, mit welcher man alle Primzahlen bis zu einer gegebenen Zahl <code>N</code> relativ effizient finden kann.</p>
<h4>Das Sieb des Eratosthenes</h4>
<p>Die Vorgehensweise beim <em>Sieben</em> ist recht simpel und schnell erklärt, dabei geht man am besten grafisch vor: Um alle Zahlen bis <code>N</code> mit dem Sieb zu finden, schreibt man die Zahlen, bildlich gesprochen, alle auf. Dann fängt man mit der ersten bekannten Primzahl, also der 2, an und streicht alle Vielfachen dieser Zahl wieder aus der Liste. Hat man das erledigt, so geht es mit der nächsten <strong>nicht</strong> gestrichenen Zahl weiter, die nun eine Primzahl sein sollte. </p>
<p>Wenn nichts schief gegangen ist, so bleiben am Ende alle Primzahlen bis <code>N</code> übrig.</p>
<p>Um einige Rechenoperationen, Vergleiche und Abfragen zu sparen, kann die Methode etwas verfeinert werden. Zum einen ist es bekannt, dass es keine geraden Primzahlen gibt. Also können diese sofort aus der Betrachtung ausgeschlossen werden. Zum anderen ist während des Siebens ebenfalls bekannt, dass alle Vielfachen der Primzahl 5 bereits gestrichen sind, wenn die Primzahl 11 an der Reihe ist. Das gilt auch für alle Primzahlen zwischen 5 und 11. Somit kann die nächste zu streichende Vielfache frühstens 11*11 sein.</p>
<p>Aus der zuletzt angestellten Betrachtung folgt sogleich, dass die größte zu prüfende Primzahl maximal die Wurzel aus N sein kann.<br />
<code class="bash"> x*x <= N</code></p>
<p>Werden die Verfeinerungen im Code angewendet, erhält man einen relativ effizienten Sieb, der mit den vorgegebenen zwei Millionen mühelos fertig werden sollte.</p>
<h3>Problemlösung</h3>
<p>Wie versprochen, brauchen wir zur Lösung des zehnten Projecteuler-Problem nur den Sieb des Eratosthenes und eine Summe aller gefundenen Primzahlen, das war es schon!<br />
Im folgenden die kompakte Lösung:</p>
<pre class="brush:python">import time as t
import numpy as np

def eratosthenes_vect(N):
    primes = np.arange(3,N+1,2)  # only uneven figures
    primes = np.insert(primes,0,2,0) # ... and two

    nUneven = np.size(primes) - 1.0

    for i in np.arange(3,np.ceil(np.sqrt(N))+2,2):
        primes[(i*i+1)/2-1:nUneven+1.0:i] = 0;

    return np.trim_zeros(np.sort(primes))

def solver(N):
    Primes = eratosthenes_vect(N)

    erg = 0;

    for i in Primes:
        erg = erg + i

    return erg

N = 2000000

t0 = t.clock()
Prim = solver(N)
tn = t.clock() - t0

print("Benoetigte Zeit: %15.6f" %tn)
print("Gefundene Summe: %i" %Prim)</pre>
<p>Die Ausgabe des Codes zeigt die benötigt Zeit und die gesuchte Summe:<br />
<code class="bash">Benoetigte Zeit:        5.940000<br />
Gefundene Summe: 142913828922<br />
</code></p>
<p>Sechs Sekunden Rechenzeit für alle Primzahlen, die kleiner als zwei Millionen sind, und die Summe daraus ist, denke ich, annehmbar.</p>
<h3>Schlusswort</h3>
<p>Nach einer etwas langwierigen Zeit, während der nur wenige Artikel in der Serie "Lösungen zu Projecteuler-Problemen mit Python" erschienen sind, gleich zwei Lösungen nach einander. Das ist schon ein Wort und sollte eigentlich mit einem dritten Artikel zum 11. Problem gefeiert werden. Vielleicht lasse ich mich dazu hinreißen <img src='http://www.muvik.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> !</p>
<p><a href="http://partners.webmasterplan.com/click.asp?ref=515746&site=6989&type=text&tnb=1" target="_blank">
Deine Stadt - Dein Preis</a><br />Mit CityDeal und vielen Anderen
den Preis drücken!<br /><img src="http://banners.webmasterplan.com/view.asp?ref=515746&site=6989&type=text&tnb=1&js=1" BORDER="0" WIDTH="1" HEIGHT="1" /></p>
<hr />
<p><small>© Muvik for <a href="http://www.muvik.de">muvik-multigrid</a>, 2010. |
<a href="http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/">Permalink</a> |
<a href="http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/#comments">keine Kommentare</a> |
Teile es mit deinen Freunden:
<a href="http://del.icio.us/post?url=http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/&title=Projecteuler: Lösung zu Problem 10">del.icio.us</a>
<a href="http://www.mister-wong.de/addurl/?bm_url=http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/&title=Projecteuler: Lösung zu Problem 10">MisterWong</a>
<a href="http://twitter.com/home?status=http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/&title=Projecteuler: Lösung zu Problem 10">Twitter</a>
<br/>
Tags: <a href="http://www.muvik.de/tag/eratosthenes/" rel="tag">Eratosthenes</a>, <a href="http://www.muvik.de/tag/primzahlen/" rel="tag">Primzahlen</a>, <a href="http://www.muvik.de/tag/projecteuler/" rel="tag">Projecteuler</a>, <a href="http://www.muvik.de/tag/python/" rel="tag">Python</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.muvik.de/2010/07/27/projecteuler-loesung-zu-problem-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projecteuler: Lösung zu Problem 7</title>
		<link>http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/</link>
		<comments>http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 09:12:21 +0000</pubDate>
		<dc:creator>Viktor Müller</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Eratosthenes]]></category>
		<category><![CDATA[Primzahlen]]></category>
		<category><![CDATA[Projecteuler]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.muvik.de/?p=1050</guid>
		<description><![CDATA[Diese Woche geht es gleich weiter mit der Lösung des siebten Projecteuler-Problems mit Python. Die guten Vorsätze von letzter Woche scheinen noch nicht abgelegt zu sein, deswegen beschäftigen wir uns in diesem Artikel wieder etwas mit Primzahlen und dem Sieb des Eratosthenes. Natürlich wird das Problem mit der Programmiersprache Python angegangen und gelöst! Problemvorstellung Das [...]]]></description>
			<content:encoded><![CDATA[<img class="cat-img-wide" alt="Projecteuler: Lösungen mit Python und C++" src="http://muvik.de/categorie_images/projecteuler_serie_start.gif" title="Projecteuler: Lösungen mit Python und C++" width="443" height="98" />
<p class="preview">Diese Woche geht es gleich weiter mit der Lösung des siebten Projecteuler-Problems mit Python. Die guten Vorsätze von letzter Woche scheinen noch nicht abgelegt zu sein, deswegen beschäftigen wir uns in diesem Artikel wieder etwas mit Primzahlen und dem Sieb des Eratosthenes. Natürlich wird das Problem mit der Programmiersprache Python angegangen und gelöst!</p>
<p><span id="more-1050"></span></p>
<h3>Problemvorstellung</h3>
<p>Das <a href="http://projecteuler.net/index.php?section=problems&#038;id=7">siebte Projecteuler-Problem</a> ist ein sehr kurzes Problem! Zumindest was die textliche Beschreibung angeht. Laut dem Motto &#8220;In der Kürze liegt die Würze&#8221; lautet die Aufgabenstellung folgendermaßen:</p>
<p>
<strong>Finde die 10001.Primzahl!</strong>
</p>
<p>Also kann mit drei Worten, einer Zahl und zwei Satzzeichen etwas formuliert werden, was jedes Grüblerherz höher schlagen lässt.</p>
<p>Diejenigen Leser, die meine Serie &#8220;Projecteuler: Lösungen mit Python und C++&#8221; bisher mitverfolgt haben, auch ohne aktives Eingreifen in Form von Kommentaren im Blog oder auch ohne die Probleme selber gelöst zu haben, werden wissen, dass es bereits eine Aufgabe gab, die Primzahlen zum Thema hatte.</p>
<p>Im Rahmen der <a href="http://www.muvik.de/2010/04/03/projecteuler-loesung-zu-problem-3/">Lösung zum dritten Problem</a>, wo es um eine Primfaktorenzerlegung ging, finden wir wichtige Werkzeuge auch zur Lösung des siebten Problems. Doch dazu später mehr, zuvor etwas Statistik:</p>
<p>Ganz aktuell gemessen, haben von insgesamt 112279 registrierten Projecteuler-Nutzern genau 57841 das Problem mit Bravour gelöst. Das entspricht ziemlich genau der Hälfte der Nutzer. Und wir sind dabei <img src='http://www.muvik.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> !</p>
<h3>Problemeingrenzung</h3>
<p>Die Schwierigkeiten bei dieser Fragestellung liegen auf der Hand: </p>
<ol>
<li>Zunächst ist es nett zu wissen, welche Zahlen denn nun überhaupt Primzahlen sind. Denn nur dann können sie auch gezählt werden. Also ist die erste Herausforderung das Filtern von Primzahlen.</li>
<li>Da nicht alle Primzahlen bis zu einer bestimmten ganzen Zahl gesucht sind, sondern eine bestimmte <em>Anzahl an Primzahlen</em>, sind die gängigsten Werkzeuge erst mal nicht zu gebrauchen, oder besser: sind zu überdenken. Es müssen weiterhin alle Primzahlen gesucht und gezählt werden, ein Limit ist jedoch nicht gegeben.</li>
</ol>
<p>Wie eingangs bereits angedeutet, können wir uns aus der Lösung zu Problem 3 eines ganz nützlichen Werkzeugs bedienen: dem <a href="http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes">Sieb des Eratosthenes</a>.</p>
<p>Mit diesem Sieb lassen sich alle Primzahlen bis zu einer gegebenen ganzen Zahl N bestimmen. Wie im verlinkten Wikipedia-Artikel erläutert, müssen hierbei einfach alle Zahlen bis N &#8220;aufgeschrieben&#8221; werden. Dann werden mit der 2 beginnend alle Vielfachen wieder gestrichen. Hat man das für die 2 erledigt, so geht es in der Reihenfolge mit der nächsthöheren Zahl weiter, also der 3, dann 5, 7, 11, &#8230;</p>
<p>Das Sieb des Eratosthenes liefert uns also alle Primzahlen, die kleiner oder gleich N sind. Gesucht ist jedoch die 10001.Primzahl. Somit kommen wir mit dem Sieb des Eratosthenes nicht direkt zum Ziel.</p>
<p>Sollen nun im Zahlenbereich bis N noch keine 10001 Primzahlen identifiziert sein, so muss der Bereich erweitert und die Suche fortgesetzt werden. Wie das realisiert werden kann, steht unter der Überschrift:</p>
<h3>Problemlösung</h3>
<p>Der erste Teil der Lösung ist klar und bereits aus der <a href="http://www.muvik.de/2010/04/03/projecteuler-loesung-zu-problem-3/">Lösung zum Problem 3</a> bekannt: </p>
<pre class="brush:python">def eratosthenes_vect(N):
    primes = np.arange(3,N+1,2)  # only uneven figures
    primes = np.insert(primes,0,2,0) # ... and two

    nUneven = np.size(primes) - 1.0

    for i in np.arange(3,np.ceil(np.sqrt(N))+2,2):
        primes[(i*i+1)/2-1:nUneven+1.0:i] = 0;

    return np.trim_zeros(np.sort(primes))</pre>
</p>
<p>Damit erhalten wir alle Primzahlen bis zur Zahl N.</p>
<p>Die einfachste Lösung wäre nun, einfach einen großes N vorzugeben und zu hoffen, dass es mindestens 10001 Primzahlen im Sieb hängen bleiben. Ist man in der Lage, ein gut passendes N abzuschätzen, so hat man mit dem Sieb des Eratosthenes eine sehr effiziente Lösungsmethode gefunden.</p>
<p>Diese Tatsache möchten wir im Folgenden ausnutzen und durch eine Erweiterung etwas absichern:</p>
<pre class="brush:python">def eratosthenes_limits(StartN, EndN, Primes):
    """
    Rechnet alle Primzahlen im Zahlenraum StartN, EndN.
    Primes: alle Primzahlen bis StartN.
    """
    if (StartN%2 == 0):
        SearchField = np.arange(StartN+1,EndN+1,2)
        limitleft = StartN+1
        limitright = EndN
    else:
        SearchField = np.arange(StartN,EndN+1,2)
        limitleft = StartN
        limitright = EndN

    for item in Primes:
        itemQ = item*item
        if itemQ <= limitright:
            for i in range(0,SearchField.size,1):
                if (SearchField[i]%item == 0):
                    SearchField[i] = 0

            SearchField = np.trim_zeros(np.sort(SearchField))
            limitleft   = SearchField[0]
            limitright  = SearchField[-1]

    return np.append(Primes,SearchField)

def solver(N,NEra):
    Primes = eratosthenes_vect(NEra)

    while (Primes.size < N):
        Primes = eratosthenes_limits(NEra+1, NEra*2, Primes)
        NEra = NEra*2

    print("Suchbereich bis N=%i" %NEra)
    return Primes[N-1]</pre>
</p>
<p>Der gegebene Vorschlag ist wahrscheinlich nicht die eleganteste Methode, aber er funktioniert für das Problem recht ordentlich.</p>
<p>Die Funktion <code>eratosthenes_limits</code> kommt zum Einsatz, wenn der Zahlenbereich, den wir geschätzt haben, zu klein ist. Sie geht im Grunde genau nach dem Prinzip des Siebes von Eratosthenes vor. Es werden alle Zahlen in einem Bereich zwischen <code>StartN</code> und <code>EndN</code> auf Teilbarkeit durch die Primzahlen bis zur Zahl <code>StartN</code> untersucht. Da wir davon ausgehen, dass der zu Beginn geschätzte Zahlenbereich nicht sehr stark vergrößert werden muss, steigern wir in der <code>solver</code>-Funktion den Suchbereich um das doppelte, wenn nicht genug Primzahlen gefunden wurden.<br /> Auf diese Weise kann es nicht vorkommen, dass die Funktion <code>eratosthenes_limits</code> ins Stocken gerät, weil Primzahlen aus dem aktuellen neuen Suchbereich benötigt werden, um alle Vielfachen zu streichen. Dafür müsste der Suchbereich schon quadratisch vergrößert werden: <code>StartN = N, EndN=N*N</code>.</p>
<p><p><script type="text/javascript"><!--
google_ad_client = "pub-1356270213107195";
/* 468x60_incontent_text */
google_ad_slot = "2104479285";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p></p>
<h4>Schätzen des Suchbereichs zu Beginn</h4>
<p>Das Schätzen des richtigen Suchbereichs ist das A und O bei der vorgeschlagenen Lösung. Dazu lohnt sich ein Blick auf die Statistik. Betrachtet man bereits die Häufigkeit von Primzahlen im Bereich von 1-10 und von 20-30, so stellt man fest, dass die Anzahl abnimmt. Diese Tatsache lässt sich mathematisch beweisen, was wir hier aber nicht machen wollen.</p>
<p>In dem Zahlenbereich, der für das siebte Projecteuler-Problem interessant ist, treten laut der <a href="http://www.maerku69.ch/Primzahlen-auflisten.html">Analyse auf maerku69.ch</a> Primzahlen mit einer Häufigkeit von etwas unter 10% auf.</p>
<p>Daraus schließen wir, dass eine Schätzung des Suchbereichs mit etwas mehr als dem zehnfachen von 10001 ganz ordentlich sein sollte.</p>
<h3>Lösungsanalyse</h3>
<p>Genug der trockenen Theorie, nun kommt die Analyse:</p>
<pre class="brush:python">import time as t
import numpy as np

def eratosthenes_vect(N):
    ...

def eratosthenes_limits(StartN, EndN, Primes):
    ...

def solver(N,NEra):
    ...

N = 10001

N1 = 11*N

t0 = t.clock()
Prim = solver(N,N1)
tn = t.clock() - t0

print("Benoetigte Zeit: %15.6f" %tn)
print("Gefundene Primzahl: %i" %Prim)</pre>
</p>
<p>Mit einem derart optimierten Suchbereich (<code>11*10001</code>) ist eine Erweiterung nicht nötig, die Lösung wird allein durch das Sieb des Eratosthenes gefunden (Ausgabe):<br />
<code class="bash">Suchbereich bis N=110011<br />
Benoetigte Zeit:        0.320000<br />
Gefundene Primzahl: 104743</code></p>
<p>Unterschätzt man den Suchbereich etwas (10*10001), dann dauert die Suche schon etwas länger:<br />
<code class="bash">Suchbereich bis N=200020<br />
Benoetigte Zeit:        2.810000<br />
Gefundene Primzahl: 104743</code></p>
<p>Hierbei wurde der Suchbereich ein mal vergrößert.</p>
<p>Wird dagegen der Suchbereich überschätzt (12*10001), dann dauert die Suche nur unwesentlich länger:<br />
<code class="bash">Suchbereich bis N=120012<br />
Benoetigte Zeit:        0.350000<br />
Gefundene Primzahl: 104743<br />
</code></p>
<h3>Schlusswort</h3>
<p>Primzahlen sind immer wieder gut für Knobel-Spielchen geeignet, so auch diesmal.</p>
<p>Das Lösen des siebte Problem hat mir persönlich viel Spass bereitet. Ich hoffe, dass es meinen Lesern nicht anders ging oder noch gehen wird und freue mich auf andere Lösungsvorschläge in den Kommentaren oder vielleicht als Reaktion im eigenen Blog.</p>
<p>Meinungen, Anregungen, Verbesserungen sind immer willkommen.</p>
<p><a href="http://partners.webmasterplan.com/click.asp?ref=515746&site=6989&type=text&tnb=1" target="_blank">
Deine Stadt - Dein Preis</a><br />Mit CityDeal und vielen Anderen
den Preis drücken!<br /><img src="http://banners.webmasterplan.com/view.asp?ref=515746&site=6989&type=text&tnb=1&js=1" BORDER="0" WIDTH="1" HEIGHT="1" /></p>
<hr />
<p><small>© Muvik for <a href="http://www.muvik.de">muvik-multigrid</a>, 2010. |
<a href="http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/">Permalink</a> |
<a href="http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/#comments">keine Kommentare</a> |
Teile es mit deinen Freunden:
<a href="http://del.icio.us/post?url=http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/&title=Projecteuler: Lösung zu Problem 7">del.icio.us</a>
<a href="http://www.mister-wong.de/addurl/?bm_url=http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/&title=Projecteuler: Lösung zu Problem 7">MisterWong</a>
<a href="http://twitter.com/home?status=http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/&title=Projecteuler: Lösung zu Problem 7">Twitter</a>
<br/>
Tags: <a href="http://www.muvik.de/tag/eratosthenes/" rel="tag">Eratosthenes</a>, <a href="http://www.muvik.de/tag/primzahlen/" rel="tag">Primzahlen</a>, <a href="http://www.muvik.de/tag/projecteuler/" rel="tag">Projecteuler</a>, <a href="http://www.muvik.de/tag/python/" rel="tag">Python</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.muvik.de/2010/07/06/projecteuler-loesung-zu-problem-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

