Encore brouillonique, traduction du truc de ptsm en style entièrement fonctionnel.
(define (paire? n)
(if (= (modulo n 2) 0)
#t
#f))
(define (racine-atteinte? n r i)
(if (<= r i)
#t
(begin
(if (= (modulo n i) 0)
#f
(racine-atteinte? n r (+ i 2))))))
(define (prem? n)
(if (paire? n)
#f
(begin
(let ((r (truncate (sqrt n))))
(if (racine-atteinte? n (+ r 1) 3)
#t
#f)))))