You are here: Home Blog Comments

Personal tools

Document Actions

Comments

Up one level
効率無視PHP版 by [1..100]>>=pen — last modified 2006-06-22 12:19

効率無視 Haskell版と同じくウィルソンの定理を使った PHP版
for ($i = 2; $i <= 100; $i++) if (gmp_mod(gmp_fact($i-1), $i) == $i-1) echo "$i\n";

[PHP]PHPな応募ないすね by Blog::koyhoge — last modified 2006-06-22 02:39
キミならどう書く 2.0 - ROUND 1 - — Lightweight Language Ring でPHPな応募がない件について。(TB全部見てないので、もしあったらごめんなさい) ということでいっちょ書いてみました。 アルゴリズムに凝るのは苦手だし、ワンライナーは端からPHPに向いてないのであ
ワンライナー@シェルスクリプト by Anonymous User — last modified 2006-06-22 00:02

エラトステネスの篩のようなもので非効率的に素数を列挙します
n=100;for i in `seq 2 $n`;do for j in `seq $i $i $n`;do echo $j;done;done|sort -n|uniq -c|egrep '^ *1[^0-9]'|sed 's/.*[ \t]//'|xargs printf '%d ';echo ''

Re:キミならどう書く 2.0 - ROUND 1 - by NANRI — last modified 2006-06-21 23:45

lispの解が少ないので、Common Lispで。
xyzzyでも動作します。
(defun loop-generate-primes (n)
"ループ版"
(let ((prime '()))
(push 2 prime)
(do ((x 3 (+ x 2)))
((> x n))
(if (dolist (i prime t) (if (zerop (rem x i)) (return nil)))
(push x prime)))
(nreverse prime)))

(defun recursive-generate-primes (limit)
"再帰版"
(labels ((check (x prime)
(cond ((endp prime)
t)
((zerop (rem x (car prime)))
nil)
(t
(check x (cdr prime)))))
(main (n x prime)
(cond ((> x n)
(nreverse prime))
((check x prime)
(main n (+ x 2) (cons x prime)))
(t
(main n (+ x 2) prime)))))
(main limit 3 (list 2))))

100までの整数から素数を列挙せよ(XSL) by inquisitor — last modified 2006-06-21 18:13
<?xml version="1.0" encoding="UTF-8" ...
上限なしで素数生成(ML版) by メモ — last modified 2006-06-21 05:33
さらに、ML(mosml)でやってみた。
キミならどう書く 2.0 - ROUND 1 - 100までの整数から素数を列挙せよ@AppleScript by ぐるりうぇぶ — last modified 2006-06-21 01:14
キミならどう書く 2.0 - ROUND 1 -— Lightweight Language Ringより。やっぱり俺が書くならAppleScriptだろうてことで書いてみた。基本はエラトステネスの篩なんだが、AppleScriptでリストを扱うとき、追加するのは簡単だけど取り除くのが面倒くさい上に遅くなるし、100じゃなくもっと多いときは死ぬほど遅くなる(主に最初のリストを作る時点で)ので、『素数リストと探索リスト』ではなく『素数リストと除外リスト』を作り、素数リストの最大値の二乗が探索リストの最大値を超えたら、(素数リストの一番最後の数+1)〜100から除外リストにある数字を除外して終了。なんつーか素朴だなぁw
100までの整数から素数を列挙 in Io :-| by [CD]CoffeeDiary — last modified 2006-06-20 19:12
キミならどう書く 2.0 - ROUND 1 -
というものが開催されていたことに遅ればせながら気がついたので、
Ioの思い出しを兼ねてやってみた。
(HaskellとかJavaScriptはほかの人がやっていたし)
最も簡単なパターンは、出力しちゃうこと。(ズル)write("2 3 5 7
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89
97")Ioではprintはオブジェクトへのメッセージなので、
こういう場合はwr...