读书人

sicp练习题1.21用smallest-divisor寻找

发布时间: 2012-12-25 16:18:29 作者: rapoo

sicp练习1.21用smallest-divisor寻找最小因子

(define (square x)  (* x x))(define (smallest-divisor n)  (find-divisor n 2))(define (find-divisor n test-divisor)  (cond ((> (square test-divisor) n) n)        ((divides? test-divisor n) test-divisor)        (else (find-divisor n (+ test-divisor 1)))))(define (divides? a b)  (= (remainder b a) 0))  (smallest-divisor 199)(smallest-divisor 1999)(smallest-divisor 19999)
得出的结论是199的最小因子是199;1999的最小因子是1999;而19999的最小因子是17?

读书人网 >编程

热点推荐