Dugaan Goldbach menyatakan bahwa setiap bilangan genap yang lebih besar dari dua dapat dinyatakan sebagai jumlah dari dua bilangan prima. Sebagai contoh,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
Namun, begitu kita sampai ke 10 sesuatu yang menarik terjadi. Tidak hanya 10 dapat ditulis sebagai
5 + 5
tetapi juga dapat ditulis sebagai
7 + 3
Karena 10 dapat dinyatakan sebagai jumlah dari dua bilangan prima dua cara , kita mengatakan bahwa "partisi Goldbach" dari 10 adalah 2
. Atau lebih umum,
Partisi Goldbach suatu angka adalah jumlah total cara penulisan yang berbeda di
n = p + q
manap
danq
merupakan bilangan prima danp >= q
Tantangan Anda adalah menulis program atau fungsi yang menemukan partisi Goldbach dari sebuah angka. Sekarang, secara teknis istilah "partisi Goldbach" hanya digunakan untuk merujuk ke angka genap. Namun, karena aneh bilangan bulat p + 2 dapat juga dinyatakan sebagai jumlah dari dua bilangan prima jika p> 2 adalah prima, kami akan memperpanjang ini untuk semua bilangan bulat positif ( A061358 ).
Anda dapat dengan aman berasumsi bahwa input Anda akan selalu menjadi bilangan bulat positif, dan Anda dapat mengambil input dan output dalam salah satu metode standar yang diizinkan , misalnya argumen fungsi dan nilai pengembalian, STDIN dan STDOUT, membaca dan menulis ke file, dll.
Partisi Goldbach dari bilangan bulat positif hingga 100 adalah:
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
Seperti biasa, celah standar berlaku, dan jawaban terpendek dalam byte menang!