Giả thuyết Goldbach nói rằng mọi số chẵn lớn hơn hai có thể được biểu diễn dưới dạng tổng của hai số nguyên tố. Ví dụ,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
Tuy nhiên, một khi chúng ta nhận được đến 10 điều thú vị xảy ra. 10 không chỉ có thể được viết là
5 + 5
nhưng nó cũng có thể được viết là
7 + 3
Vì 10 có thể được biểu thị bằng tổng của hai số nguyên tố theo hai cách , nên chúng tôi nói rằng "phân vùng Goldbach" của 10 là 2
. Hay nói chung hơn,
Phân vùng Goldbach của một số là tổng số cách viết khác nhau ở
n = p + q
đâup
vàq
là số nguyên tố vàp >= q
Thử thách của bạn là viết một chương trình hoặc hàm tìm phân vùng Goldbach của một số. Bây giờ, về mặt kỹ thuật thuật ngữ "phân vùng Goldbach" chỉ được sử dụng để chỉ các số chẵn. Tuy nhiên, vì số nguyên lẻ p + 2 cũng có thể được biểu diễn dưới dạng tổng của hai số nguyên tố nếu p> 2 là số nguyên tố, chúng tôi sẽ mở rộng số này cho tất cả các số nguyên dương ( A061353 ).
Bạn có thể giả định một cách an toàn rằng đầu vào của bạn sẽ luôn là số nguyên dương và bạn có thể lấy đầu vào và đầu ra trong bất kỳ phương thức được phép mặc định nào của chúng tôi , ví dụ: đối số hàm và giá trị trả về, STDIN và STDOUT, đọc và ghi vào tệp, v.v.
Các phân vùng Goldbach của các số nguyên dương lên tới 100 là:
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
Như thường lệ, các sơ hở tiêu chuẩn được áp dụng và câu trả lời ngắn nhất tính theo byte sẽ thắng!