素数を求める

1とn以外に割り切れる数を持たないのが素数だけど、それを判定する実装。
普通に考えたら1からn-1まで順に余りを見ていけばいいのだけど。
調べてみたら捜索範囲はnの平方根まででいいという事を知る。
言われてみれば2つの数の掛け合わせを調べるのだからナルホドって感じ。

def sosou(n)
  sqrt_n = Math.sqrt(n).floor
  (2..sqrt_n).each{|i| return false if n % i == 0}
  return true
end

こんな感じかな?