La conjetura de Goldbach establece que cada número par mayor que dos puede expresarse como la suma de dos números primos. Por ejemplo,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
Sin embargo, una vez que llegamos a 10, sucede algo interesante. No solo se puede escribir 10 como
5 + 5
pero también se puede escribir como
7 + 3
Como 10 puede expresarse como la suma de dos primos de dos maneras , decimos que la "partición Goldbach" de 10 es 2
. O más generalmente,
La partición Goldbach de un número es el número total de formas distintas de escribir
n = p + q
dóndep
yq
son primos yp >= q
Su desafío es escribir un programa o función que encuentre la partición Goldbach de un número. Ahora, técnicamente el término "partición Goldbach" se usa solo para referirse a números pares. Sin embargo, puesto que el entero impar p + 2 puede también ser expresada como la suma de dos números primos si p> 2 es primo, que se ampliará a todos los números enteros positivos ( A061358 ).
Puede suponer con seguridad que su entrada siempre será un número entero positivo, y puede tomar entrada y salida en cualquiera de nuestros métodos permitidos por defecto , por ejemplo, argumentos de función y valor de retorno, STDIN y STDOUT, leer y escribir en un archivo, etc.
Las particiones de Goldbach de los enteros positivos hasta 100 son:
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
Como de costumbre, se aplican las lagunas estándar, ¡y gana la respuesta más corta en bytes!