; goldbach's other conjecture
(define (prime? n)
(if (even? n) #f
(let loop ((f 3))
(if (< n (* f f)) #t
(if (zero? (modulo n f)) #f
(loop (+ f 2)))))))
(define (goldbach n)
(let loop ((dsq 0) (k 1))
(if (< n dsq) (list)
(if (prime? (- n dsq)) (list (- n dsq) (sqrt (/ dsq 2)))
(loop (+ dsq k k) (+ k 2))))))
(do ((n 3 (+ n 2))) ((< 10000 n))
(let ((g (goldbach n)))
(when (null? g)
(display n) (newline))))
OyBnb2xkYmFjaCdzIG90aGVyIGNvbmplY3R1cmUKCihkZWZpbmUgKHByaW1lPyBuKQogIChpZiAoZXZlbj8gbikgI2YKICAgIChsZXQgbG9vcCAoKGYgMykpCiAgICAgIChpZiAoPCBuICgqIGYgZikpICN0CiAgICAgICAgKGlmICh6ZXJvPyAobW9kdWxvIG4gZikpICNmCiAgICAgICAgICAobG9vcCAoKyBmIDIpKSkpKSkpCgooZGVmaW5lIChnb2xkYmFjaCBuKQogIChsZXQgbG9vcCAoKGRzcSAwKSAoayAxKSkKICAgIChpZiAoPCBuIGRzcSkgKGxpc3QpCiAgICAgIChpZiAocHJpbWU/ICgtIG4gZHNxKSkgKGxpc3QgKC0gbiBkc3EpIChzcXJ0ICgvIGRzcSAyKSkpCiAgICAgICAgKGxvb3AgKCsgZHNxIGsgaykgKCsgayAyKSkpKSkpCgooZG8gKChuIDMgKCsgbiAyKSkpICgoPCAxMDAwMCBuKSkKICAgIChsZXQgKChnIChnb2xkYmFjaCBuKSkpCiAgICAgICh3aGVuIChudWxsPyBnKQogICAgICAgIChkaXNwbGF5IG4pIChuZXdsaW5lKSkpKQ==