La congettura di Goldbach afferma che ogni numero pari maggiore di due può essere espresso come la somma di due numeri primi. Per esempio,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
Tuttavia, una volta arrivati a 10 succede qualcosa di interessante. Non solo 10 possono essere scritti come
5 + 5
ma può anche essere scritto come
7 + 3
Poiché 10 può essere espresso come la somma di due numeri primi in due modi , diciamo che la "partizione di Goldbach" di 10 è 2
. O più in generale,
La partizione di Goldbach di un numero è il numero totale di modi distinti di scrivere
n = p + q
dovep
eq
sono numeri primi ep >= q
La tua sfida è scrivere un programma o una funzione che trovi la partizione Goldbach di un numero. Ora, tecnicamente il termine "partizione di Goldbach" viene utilizzato solo per riferirsi a numeri pari. Tuttavia, poiché l'intero dispari p + 2 può anche essere espresso come la somma di due numeri primi se p> 2 è primo, lo estenderemo a tutti i numeri interi positivi ( A061358 ).
Puoi tranquillamente supporre che l'input sia sempre un numero intero positivo e puoi accettare input e output in uno qualsiasi dei nostri metodi predefiniti consentiti , ad esempio argomenti di funzioni e valore di ritorno, STDIN e STDOUT, lettura e scrittura su un file, ecc.
Le partizioni di Goldbach degli interi positivi fino a 100 sono:
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
Come al solito, si applicano scappatoie standard e vince la risposta più breve in byte!