プログラムに計算式とかせるのが好き2
;;素因数分解する。 (define (prime-decomposition x) ;;素因数分解するとき。 ;;nで割ってみて、余りが0だったら、戻り値にnを追加して、もう一回 ;;余りが0じゃなかったらnを+1して、ループ ;;…であってる? ;;nが素数じゃなかったら、とかは下の方からループしてくと発生しない? (define (prime-decomposition-iter x n) (cond ((= n x)(list x)) ((= (remainder x n) 0) (cons n (prime-decomposition-iter (/ x n) n))) (else (prime-decomposition-iter x (+ n 1))))) (prime-decomposition-iter x 2))
なんと原始的な書き方をすると素数判定いらない。結構意外だった。