P31 (**) Determine whether a given integer number is prime.

来源:互联网 发布:知豆汽车销量 编辑:程序博客网 时间:2024/06/11 03:54

问题描述

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)))]))])))
1 0
原创粉丝点击