kotazon.com

虎太郎の備忘録

【AtCoder-Ruby】ABC106 B - 105

問題

問題文

1 以上 N 以下の奇数のうち、正の約数をちょうど 8個持つようなものの個数を求めよ。

制約

N は 1 以上 200 以下の整数

問題リンク

考えたこと

  • 制約もゆるいので、入力以下の奇数のデータで約数が8個のものを探す
  • 約数を取得する処理は関数化

回答

def factor(n) 
  (1..n).select { |i| (n % i) == 0 }
end

n = gets.strip.to_i
puts 1.step(n, 2).select { |i| factor(i).size == 8 }.size

考察

約数の取得処理はよくできたと思うので、少し修正してライブラリ化してもいいかも。