コマ大数学科
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]