; ====================================================================== ; ; Structure and Interpretation of Computer Programs ; (trial answer to excercises) ; ; 计算机程序的构造和解释(习题试解) ; ; created: code17 02/28/05 ; modified: ; (保持内容完整不变前提下,可以任意转载) ; ======================================================================
;; SICP No.1.27
;; 原始的try-it函数定义为测试某数a对于n的expmod,现在改为递归测试从a至1 ;; 的所有整数,函数fermat-test以n调用try-it (define (fermat-test n) (define (try-it a) (cond ((= a 0) #t) ((= (expmod a n n) a) (try-it (- a 1))) (else #f))) (try-it (- n 1)))
;; Test-it: ;; Welcome to MzScheme version 209, Copyright (c) 2004 PLT Scheme, Inc. ;; > (fermat-test 561) ;; #t ;; > (fermat-test 1105) ;; #t ;; > (fermat-test 1729) ;; #t ;; > (fermat-test 2465) ;; #t ;; > (fermat-test 2821) ;; #t ;; > (fermat-test 6601) ;; #t ;; > 
|