Haskell, 97C
g n=head[(a,b)|let q=p n,a<-q,b<-q,a+b==n]
p n=filter c[2..n]
c p=null[x|x<-[2..p-1],p`mod`x==0]
คำอธิบาย:
g
เป็นฟังก์ชั่น "goldbach" การโทรg n
ให้คู่ของช่วงเวลาที่รวมเข้าn
ด้วยกัน
p
เป็นฟังก์ชั่นที่สร้างรายการของจำนวนเฉพาะน้อยกว่า n
เป็นฟังก์ชั่นที่สร้างรายชื่อของช่วงเวลาน้อยกว่า
c
เป็นฟังก์ชันตัวตรวจสอบเฉพาะที่ใช้เพื่อกำหนด p
เป็นฟังก์ชั่นการตรวจสอบที่สำคัญที่ใช้ในการกำหนด
ตัวอย่างการทำงาน:
*Main> g 4
(2,2)
*Main> g 6
(3,3)
*Main> g 8
(3,5)
*Main> g 10
(3,7)
*Main> g 12
(5,7)
*Main> map g [4,6..100]
[(2,2),(3,3),(3,5),(3,7),(5,7),(3,11),(3,13),(5,13),(3,17),(3,19),(5,19),(3,23),(5,23),(7,23),(3,29),(3,31),(5,31),(7,31),(3,37),(5,37),(3,41),(3,43),(5,43),(3,47),(5,47),(7,47),(3,53),(5,53),(7,53),(3,59),(3,61),(5,61),(7,61),(3,67),(5,67),(3,71),(3,73),(5,73),(7,73),(3,79),(5,79),(3,83),(5,83),(7,83),(3,89),(5,89),(7,89),(19,79),(3,97)]