コマ大数学科

1から10000までの番号がついた電灯がある。1の倍数の電灯のスイッチを押し、次に2の倍数のスイッチを押し、次に3の倍数のスイッチを押し…と、これを10000回行った後、点灯している電灯の数はいくつか。初期状態で電球は消灯している。(コマ大数学科第12回・改) #math

自分の回答。

require 'mathn';(2..10000).map{|n| Prime.prime_division(n)}.count{|v| v.all?{|a| a.last.even?}}+1

模範回答。なるほど〜

->m{(1..m).count{|n| n*n<=m}}[10000]