n以下の素数のリストを作る

http://code.nanigac.com/source/view/709

def primeList num
  return [] if num < 2
  arr = (2..num).to_a
  primes = []
  begin
    primes << (p = arr.shift)
    arr.reject!{|i| i%p == 0}
  end while p**2 < arr.last

  primes + arr
end

puts primeList(100)

ほんとにこれでだいじょうぶなのか・・・