Hipoteza Goldbacha stwierdza, że każdą liczbę parzystą większą niż dwa można wyrazić jako sumę dwóch liczb pierwszych. Na przykład,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
Gdy jednak dojdziemy do 10, dzieje się coś ciekawego. Nie tylko 10 można zapisać jako
5 + 5
ale można to również zapisać jako
7 + 3
Ponieważ 10 można wyrazić jako sumę dwóch liczb pierwszych na dwa sposoby , mówimy, że „partycja Goldbacha” wynosi 10 2. Lub bardziej ogólnie
Podział liczbowy Goldbacha to całkowita liczba różnych sposobów pisania
n = p + qgdziepiqsą liczbami pierwszymi ip >= q
Twoim wyzwaniem jest napisanie programu lub funkcji, która znajdzie partycję Goldbacha liczby. Obecnie technicznie termin „partycja Goldbacha” jest używany tylko w odniesieniu do liczb parzystych. Ponieważ jednak nieparzysta liczba całkowita p + 2 może być również wyrażona jako suma dwóch liczb pierwszych, jeśli p> 2 jest liczbą pierwszą, rozszerzymy ją na wszystkie liczby całkowite dodatnie ( A061358 ).
Możesz bezpiecznie założyć, że dane wejściowe będą zawsze dodatnimi liczbami całkowitymi i możesz pobierać dane wejściowe i wyjściowe dowolną z naszych domyślnych dozwolonych metod , na przykład argumentów funkcji i zwracanej wartości, STDIN i STDOUT, odczytywanie i zapisywanie do pliku itp.
Podziały Goldbach dodatnich liczb całkowitych do 100 to:
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
Jak zwykle obowiązują standardowe luki i wygrywa najkrótsza odpowiedź w bajtach!

