You are here: Home Blog Comments

Personal tools

Document Actions

Comments

Up one level
Re:キミならどう書く 2.0 - ROUND 1 - by みずしま — last modified 2006-06-18 18:46

間違って、トラックバックを2回送ってしまいました。すみません。

[Groovy]キミならどう書く 2.0 - ROUND 1 - by Onion開発日記 — last modified 2006-06-18 18:40

Groovyで書いてみた。まずはこんな感じのコード。


println ((2..100).findAll{x->(2..x/2).every{x%it!=0}})


しかし、実行してみると、何故か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]


たぶん、範囲式の使い方が原因だろうということで、ちょっと調べてみる。


(2..1).each{println it}
=>
2
1


どうやら、(x .. y)で、x>yの場合は、空の範囲を生成するのではなく、x,
x-1,x-2,...,yの範囲を生成するようだ。しかも、Groovyの公式ページのドキュメントを見ても、この仕様に関するきちんとした記述が見当たらないorz


仕方無いので、内側のループは2..x/2ではなく、2...xにすることにした。


println ((2..100).findAll{x->(2...x).every{x%it!=0}})


今度は、ちゃんと2も出力されるようになった。


[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]
[Groovy]キミならどう書く 2.0 - ROUND 1 - by Onion開発日記 — last modified 2006-06-18 18:40

Groovyで書いてみた。まずはこんな感じのコード。


println ((2..100).findAll{x->(2..x/2).every{x%it!=0}})


しかし、実行してみると、何故か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]


たぶん、範囲式の使い方が原因だろうということで、ちょっと調べてみる。


(2..1).each{println it}
=>
2
1


どうやら、(x .. y)で、x>yの場合は、空の範囲を生成するのではなく、x,
x-1,x-2,...,yの範囲を生成するようだ。しかも、Groovyの公式ページのドキュメントを見ても、この仕様に関するきちんとした記述が見当たらないorz


仕方無いので、内側のループは2..x/2ではなく、2...xにすることにした。


println ((2..100).findAll{x->(2...x).every{x%it!=0}})


今度は、ちゃんと2も出力されるようになった。


[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]
javascriptで素数生成 by Marble Screw — last modified 2006-06-18 16:25
これをJavascriptで。
[http://ll.jus.or.jp/2006/blog/doukaku1:title]
*アルゴリズム
[g:素数判定 アルゴリズム]で探してみたけど、技術
[プログラミング]Concurrent Clean : L.L.Ring : キミならどう書く 2.0 - ROUND 1 - 高速化編 by lethevert is a programmer — last modified 2006-06-18 14:24
id:lethevert:20060616:p2 : 素直な回答 id:lethevert:20060617:p1 : 頭部非ボックス化正格リスト id:lethevert:20060617:p2 : gccとの速度比較 ここまで、コードの外形には触れずにいましたが、コードの外形を変えて高速化してみましょう。 Start = last $ takeWhile ((&#6
[Squeak][Smalltalk] 100までの整数から素数を列挙せよ…を Smalltalk-72 で by sumim’s smalltalking-tos — last modified 2006-06-18 13:28
悪ノリして、今度は 1974 年からのエントリー。 "limit _ 100. "primes _ stream of vector 1. primes _ 2. for i _ 3 to limit by 2 ("isprime _ true. "vec _ primes contents. for idx to vec length ("prime _ vec[idx]. (i mod prime) = 0? (
[LL]キミならどう書く 2.0 - ROUND 1 6月26日(月)締切 by はてなの日記 Akira51 — last modified 2006-06-18 11:32
いい感じでRSSからお題が送られてきました。(この記事は6/25(日)まで更新し続けます。) LL Ring の前哨戦として「キミならどう書く 2.0」の開催 お題は「100までの整数から素数を列挙せよ」です. 解答の締切は6月26日(月)とします.締切後には投票による人気の集計を行
Re:キミならどう書く 2.0 - ROUND 1 - by Anonymous User — last modified 2006-06-18 05:58

昔ながらのBASICで。
すぐに使える実行環境が無いので机上デバッグしかしていません。
10 'SAVE "PRIME.BAS"
20 DIM A(100):I=2
30 FOR P=I*2 TO 100 STEP I:A(P)=1:NEXT P
40 I=I+1:IF I=101 THEN GOTO 60
50 IF A(I)=0 THEN GOTO 30 ELSE GOTO 40
60 FOR I=2 TO 100
70 IF A(I)=0 THEN PRINT I," ";
80 NEXT I