La conjecture de Goldbach déclare que tout nombre pair supérieur à deux peut être exprimé comme la somme de deux nombres premiers. Par exemple,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
Cependant, une fois à 10, quelque chose d'intéressant se produit. Non seulement 10 peut être écrit comme
5 + 5
mais il peut aussi s'écrire
7 + 3
Puisque 10 peut être exprimé comme la somme de deux nombres premiers de deux manières , nous disons que la "partition de Goldbach" de 10 est 2
. Ou plus généralement,
La partition de Goldbach d'un nombre est le nombre total de façons distinctes d'écrire
n = p + q
oùp
etq
sont des nombres premiers etp >= q
Votre défi consiste à écrire un programme ou une fonction qui trouve la partition Goldbach d'un nombre. Or, techniquement, le terme "partition de Goldbach" n'est utilisé que pour désigner les nombres pairs. Cependant, comme l'entier impair p + 2 peut également être exprimé comme la somme de deux nombres premiers si p> 2 est premier, nous allons l'étendre à tous les entiers positifs ( A061358 ).
Vous pouvez supposer en toute sécurité que votre entrée sera toujours un entier positif, et vous pouvez prendre l'entrée et la sortie dans l'une de nos méthodes autorisées par défaut , par exemple les arguments de fonction et la valeur de retour, STDIN et STDOUT, la lecture et l'écriture dans un fichier, etc.
Les partitions de Goldbach des entiers positifs jusqu'à 100 sont:
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
Comme d'habitude, les failles standard s'appliquent et la réponse la plus courte en octets gagne!