Skip to content

Instantly share code, notes, and snippets.

@qddddr
Last active December 26, 2015 08:29
Show Gist options
  • Save qddddr/7123103 to your computer and use it in GitHub Desktop.
Save qddddr/7123103 to your computer and use it in GitHub Desktop.
#!r6rs
(import (rnrs))
(define (print . args)
(for-each display args)
(newline))
(define (enum-coprimes/stern-brocot-tree N)
(let recur ([a 0] [b 1] [x 1] [y 1])
(let ([n (+ a x)]
[d (+ b y)])
(when (<= d N)
(print n ", " d)
(recur a b n d)
(recur n d x y)))))
(define (enum-coprimes/reverse-euclid N)
(let recur ([a 1] [b 1])
(let loop ([d (+ a b)])
(when (<= d N)
(print b ", " d)
(recur b d)
(loop (+ d b))))))
(enum-coprimes/stern-brocot-tree 6)
(print "--------------------")
(enum-coprimes/reverse-euclid 6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment