不等式の一問題

また rscの日記さんのところからです。もとの問題はこちら

ある塾のA組からC組までの3つの組には、合計105人の生徒が在籍しており、それぞれの組の生徒数に関して、次のア、イのことがわかっている。
ア B組の生徒数の3倍は、A組の生徒数の2倍より5人以上多い
イ C組の生徒数は、A組からC組までの生徒数の合計の5割より7人以上少なく、B組の生徒数より20人以上多い。
このときB組の生徒数として正しいのはどれか。


Ruby で解いてみようかと式をいじくったら、そのまま解けてしまいました。まず式にすると、
  
  
  
ですが、ここから a を消去して
  
となります。これより c の範囲が
  
となるので、c = 45 とわかります。これより
  
すなわち b = 25 で、これが回答です。(これらより a = 35 とわかります。)

Ruby でやるならこんな感じでしょうか。b + 20 ≦ c より明らかに b < c であることを使っています。

for b in 1..104
  for c in (b + 1)..105
    a = 105 - b - c
    next if a < 1
    if (3 * b >= 2 * a + 5) and (b + 20 <= c and c <= 52.5 - 7)
      puts "(a, b, c) = (#{a}, #{b}, #{c})"    #=>(a, b, c) = (35, 25, 45)
    end
  end
end