Hatena::Groupcadr

kozima の日記

2009-07-27

素数判定

| 23:08

素数判定をする関数を短く書きましょう、ということを数十分ほどやりました。

できた関数たち。

(defun p(n)(do((i 1))((=(incf i)n)t)(or(=(rem n i)1)(return()))))
(defun p(n)(loop for i from 2 below n never(=(rem n i)0)))
(defun p(n)(loop for i to(- n 3)never(=(rem n(+ i 2))0)))

CLISP だったら階乗が組み込みで入ってるのでこんなのも。

(defun p(n)(=(gcd(!(1- n))n)1))