首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

sicp练习题 1.22

2012-11-10 
sicp练习 1.22(define (square x)(* x x))(define (smallest-divisor n)(find-divisor n 2))(define (find

sicp练习 1.22

(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))  (define (prime? n)  (= (smallest-divisor n) n))(define (search-for-primes start-num end-num)  (search-for-primes-iter start-num end-num (runtime)))(define (search-for-primes-iter start-num end-num start-time)  (cond ((< start-num end-num) (begin (prime? start-num)                                       (search-for-primes-iter (+ start-num 1) end-num start-time)))        ((= start-num end-num) (begin (prime? start-num)                                       (newline)                                      (display "all over time: ")                                      (display(- (runtime) start-time))                                      (newline)                                      (- (runtime) start-time)))));(search-for-primes 1000000 1000100);(search-for-primes 10000000 10000100);(search-for-primes 100000000 100000100)(/ (search-for-primes 10000000 10001000)       (search-for-primes 1000000 1001000) 1.0)(/ (search-for-primes 100000000 100001000)     (search-for-primes 10000000 10001000) 1.0)(/ (search-for-primes 1000000000 1000001000)   (search-for-primes 100000000 100001000) 1.0)(/ (search-for-primes 10000000000 10000001000) (search-for-primes 1000000000 1000001000) 1.0)
?

热点排行