こちらの動画にある数学の問題。Rubyでプログラムを書いて強引に解くとどうなるか検証しました。プログラムも数行で簡単にかけてしまいます。
www.youtube.com
# -*- coding: utf-8 -*- # 2023-04-12 created # https://www.youtube.com/watch?v=ScGsag-RAsA&t=357s if __FILE__ == $0 then for bb in 2..500 for aa in 1..bb-1 sum = (aa..bb).to_a.sum if (sum == 500) then puts "(a,b) = (#{aa},#{bb})" end end end end
実行結果はこちら。1秒もかからずに瞬殺できます。
$ time ruby sum500.rb (a,b) = (8,32) (a,b) = (59,66) (a,b) = (98,102) real 0m0.699s user 0m0.688s sys 0m0.011s
動画にあるように、論理的に絞り込んでいく思考力の方が大事ですが、検算の手法を知っておくことも大事かと思います。