原です。
In message "[ruby-list:13046] Re: Sieve of Eratosthenes (Re: [ruby-dev:6094])"
on 99/03/21, WATANABE Hirofumi <eban / os.rim.or.jp> writes:
|
|わたなべです.
|profile を取ってみると Float#< が結構上位にいるので
| for i in 0 .. (Math.sqrt(max)-3)/2
|を
| for i in 0 .. Integer((Math.sqrt(max)-3)/2)
|にするとちょっと速くなります(微々たるもんだけど).
|
そんな気はしていたのですが。(^^;
さらに 3 の倍数もあらかじめ除くとか、5 の倍数、7 の倍数、
とずっとやってみたのですが、ふるいにかけるべき数が等差数
列でなくなるオーバーヘッドで、結局速くなりませんでした。
2 は素数でないという法則はここでも当てはまった。:-)