素数のお勉強 3 - 過剰数
過剰数を求めてみる。
過剰数は、約数の総和が元の数の2倍より大きい数のことである。
(define (divisor n) (letrec ((iter (lambda (m) (cond ((> m n) '()) ((= (modulo n m) 0) (cons m (iter (+ m 1)))) (else (iter (+ m 1))))))) (iter 1))) (filter (lambda (n) (< (* 2 n) (apply + (divisor n)))) (iota 100 1)) ; (12 18 20 24 30 36 40 42 48 54 56 60 66 70 72 78 80 84 88 90 96 100)
ふむふむ。
約数の総和が、
「自分自身を含まない約数の総和」とした場合は、自分自身の数と比べる。