先将书本 33 页的 samllest-divisor
程序敲下来:
.. literalinclude:: code/p33-smallest-divisor.scm
.. literalinclude:: code/p33-find-divisor.scm
.. literalinclude:: code/p33-divides.scm
然后就可以开始找给定数的最小因子了:
1 ]=> (load "p33-smallest-divisor.scm") ;Loading "p33-smallest-divisor.scm"... ; Loading "p33-divides.scm"... done ; Loading "p33-find-divisor.scm"... done ;... done ;Value: smallest-divisor 1 ]=> (smallest-divisor 199) ;Value: 199 1 ]=> (smallest-divisor 1999) ;Value: 1999 1 ]=> (smallest-divisor 19999) ;Value: 7
可以看到, 199
和 1999
的最小因子都是它们自身,说明它们都是素数,另一方面, 19999
的最小因子是 7
,它不是素数。