การคาดคะเนของ Goldbachระบุว่าจำนวนที่มากกว่าสองจะแสดงเป็นผลรวมของสองช่วง ตัวอย่างเช่น,
4 = 2 + 2
6 = 3 + 3
8 = 5 + 3
อย่างไรก็ตามเมื่อเราไปถึง 10 สิ่งที่น่าสนใจเกิดขึ้น สามารถเขียนเป็น 10 เท่านั้นไม่ได้
5 + 5
แต่มันก็สามารถเขียนเป็น
7 + 3
ตั้งแต่วันที่ 10 สามารถแสดงเป็นผลรวมของสองจำนวนเฉพาะสองวิธีที่เราบอกว่า "Goldbach พาร์ทิชัน" ของ 2
10 หรือมากกว่าโดยทั่วไป
พาร์ทิชัน Goldbach ของจำนวนคือจำนวนรวมของวิธีการเขียน
n = p + q
ที่แตกต่างกันที่ไหนp
และq
เป็นช่วงเวลาและp >= q
ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่พบพาร์ติชัน Goldbach ของตัวเลข ตอนนี้ในทางเทคนิคแล้วคำว่า "พาร์ทิชัน Goldbach" ใช้เพื่ออ้างถึงตัวเลขคู่เท่านั้น อย่างไรก็ตามเนื่องจากเป็นจำนวนเต็มคี่P + 2สามารถยังจะแสดงเป็นผลรวมของสองจำนวนเฉพาะถ้าp> 2เป็นสำคัญเราจะขยายนี้เพื่อจำนวนเต็มบวกทั้งหมด ( A061358 )
คุณอาจสันนิษฐานได้ว่าข้อมูลที่ป้อนของคุณจะเป็นจำนวนเต็มบวกเสมอและคุณสามารถนำเข้าและส่งออกในวิธีการเริ่มต้นที่เราอนุญาตเช่นอาร์กิวเมนต์ฟังก์ชันและค่าส่งคืน STDIN และ STDOUT การอ่านและการเขียนลงไฟล์ ฯลฯ
พาร์ทิชัน Goldbach ของจำนวนเต็มบวกถึง 100 คือ:
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
ตามปกติจะใช้ช่องโหว่มาตรฐานและคำตอบที่สั้นที่สุดเป็นไบต์จะชนะ!