RDW #7 - Raetsel der Woche Nummer 7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Regeln: * Bitte nicht vor Ablauf der ersten 72 Stunden ( = drei Tage ) nach
~~~~~~~ Veroeffentlichung Hinweise (Spoiler) oder Loesungen veroeffent-
lichen!
* Wenn diese Zeit abgelaufen ist, werde ich einen Thread mit passen-
dem Titel erstellen, in dem die Loesungen gepostet werden und dis-
kutiert werden koennen.
* Die Loesungen sollten nicht nur gepostet, sondern auch an mich ge-
mailt werden, damit ich sie testen, "bewerten" und zusammenfassen
kann. Die Adrese dafuer lautet:
crian <---AT---> perl <---MINUS---> community <---DOT---> de
Im Betreff sollte 'RDW' und die Nummer des Raetsels stehen. Hilf-
reich waere neben dem Quellcode der Username im Forum sowie Perl-
und OS-Version, falls Du diese kennst.
* Verstaendnisfragen duerfen in diesem Thread gestellt werden, aber
Tipps und (Teil-) Loesungen sind hier unerwuenscht.
* Ich werde die eingeschickten Programme im Netz zur Verfuegung
stellen, so dass gerade lange Quellcodes nicht (komplett)
gepostet werden muessen.
* Zur Verwendung von Modulen: Ich moechte diese nicht generell aus-
schliessen, aber wenn quasi die komplette Aufgabe durch die Ver-
wendung eines Moduls ersetzt werden kann, ist dies vielleicht nicht
der Sinn der Aufgabe gewesen.
Aufgabe: Die Goldbachsche Vermutung lautet "Jede natuerliche, gerade Zahl
~~~~~~~~ groesser als vier laesst sich als Summe von zwei Primzahlen dar-
stellen."
Beispiele: 6 = 3 + 3
8 = 5 + 3
10 = 7 + 3
12 = 7 + 5
(Gegenbeispiel fuer ungerade Zahlen: 11)
Es soll eine Funktion "goldbach" der folgenden Art
sub goldbach ($) {
my ($zahl) = @_;
...
return ($p1, $p2);
}
geschrieben werden, welche eine natuerliche Zahl entgegennimmt und
nach zwei Primzahlen sucht, deren Summe die uebergebene Zahl ist.
Zurueckgegeben wird eine Liste mit den beiden gefundenen Zahlen bzw,
eine leere Liste.
Fuer die Golfer: Hier soll sich das Programm so verhalten wie die
oben beschriebene Funktion, wobei dann "x = y + z" bzw. eine Meldung
ausgegeben wird, dass sich kein solches Paar finden liess.
Bei der Golfloesung zaehlt nur die Kuerze in Zeichen (nach der
Zaehlung von DS), bei den normalen Loesungen zaehlt die Schnelligkeit
des Algorithmus.
(Das Thema dieses Raetsels wurde von [E|B] vorgeschlagen.)