计算机程序的构造和解释 练习题1.21

smaillest-divisor

(define (square x) (* x x))
(define (divides? a b) (= (remainder b a) 0))
(define (smaillest-divisor n)
	(find-divisor n 2))
(define(find-divisor n test-divisor)
	(cond ((> (square test-divisor) n) n) //如果test-divisor>√n 则n本身就是他最小因子
			((divides? test-divisor n) test-divisor )
			(else (find-divisor n (+ test-divisor 1)))
	)
)

199和1999都是素数,他的除1以外的最小因子就是它本身
19999是合数,最小因子是7

发布了27 篇原创文章 · 获赞 1 · 访问量 484

猜你喜欢

转载自blog.csdn.net/holybird0213/article/details/104594230