问题描述
sash> (prime? 7)
-> #t
解法
素数是大于1且约数只有1和其本身的整数。实现算法很多,下面是比较简单的一种。
(define prime?
(lambda (n)
(cond
[(< n 2) #f]
[(= n 2) #t]
[(zero? (floor-remainder n 2)) #f]
[else
(let f ([i 3]) (cond [(> (* i i) n) #t] [else (if (zero? (floor-remainder n i)) #f (f (+ i 2)))]))])))