Die Goldbach-Vermutung besagt, dass jede gerade Zahl größer als zwei als die Summe zweier Primzahlen ausgedrückt werden kann. Beispielsweise,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
Sobald wir jedoch 10 sind, passiert etwas Interessantes. Nicht nur 10 kann als geschrieben werden
5 + 5
es kann aber auch so geschrieben werden
7 + 3
Da 10 auf zwei Arten als die Summe zweier Primzahlen ausgedrückt werden kann , sagen wir, dass die "Goldbach-Partition" 10 ist 2
. Oder allgemeiner
Die Goldbach-Teilung einer Zahl ist die Gesamtzahl der unterschiedlichen Schreibweisen, bei
n = p + q
denenp
undq
Primzahlen und sindp >= q
Ihre Herausforderung besteht darin, ein Programm oder eine Funktion zu schreiben, die die Goldbach-Partition einer Zahl findet. Technisch wird der Begriff "Goldbach-Partition" nur für gerade Zahlen verwendet. Da die ungerade ganze Zahl p + 2 auch als Summe zweier Primzahlen ausgedrückt werden kann, wenn p> 2 eine Primzahl ist, wird dies auf alle positiven ganzen Zahlen ausgedehnt ( A061358 ).
Sie können davon ausgehen, dass Ihre Eingabe immer eine positive Ganzzahl ist, und Sie können Eingaben und Ausgaben in einer unserer zulässigen Standardmethoden vornehmen, z. B. Funktionsargumente und Rückgabewerte, STDIN und STDOUT, Lesen und Schreiben in eine Datei usw.
Die Goldbach-Partitionen der positiven ganzen Zahlen bis zu 100 sind:
0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 2, 1, 2, 0, 2, 1, 2, 1, 3, 0, 3, 1,
3, 0, 2, 0, 3, 1, 2, 1, 4, 0, 4, 0, 2, 1, 3, 0, 4, 1, 3, 1, 4, 0, 5, 1, 4,
0, 3, 0, 5, 1, 3, 0, 4, 0, 6, 1, 3, 1, 5, 0, 6, 0, 2, 1, 5, 0, 6, 1, 5, 1,
5, 0, 7, 0, 4, 1, 5, 0, 8, 1, 5, 0, 4, 0, 9, 1, 4, 0, 5, 0, 7, 0, 3, 1, 6
Wie üblich gelten Standardlücken und die kürzeste Antwort in Bytes gewinnt!