稲葉です.

わたなべさんのエレガントなスクリプトの
重箱の隅を突つくような事ですが, 

Subject: [ruby-dev:6083] Re: sieve.rb
From: WATANABE Hirofumi <watanabe / ase.ptg.sony.co.jp>
Date: Mon, 8 Mar 1999 11:48:42 +0900

> わたなべです.
	:
> for i in 2 .. Math.sqrt(max)
>   (i+i).step(max, i) do |j|
>     sieve[j] = nil
>   end
> end

「乗除算を行わない」には反しますが j は(i+i)ではなく
(i*i)からの方がいいような気がします.

それから i が素数かどうか sieve で判断するとmaxが大きい時
には効率がいいと思います.

for i in 2 .. Math.sqrt(max)
  next unless sieve[i]
  (i*i).step(max, i) do |j|
    sieve[j] = nil
  end
end
--
	稲葉 浩人 <inaba / sdd.tokyo-sc.toshiba.co.jp/inaba / st.rim.or.jp>