この質問はProject Euler Problem 5を参照しているので、ネタバレに注意してください! 問題 5:
2520 は、1 から 10 までの各数値で割り切れる最小の数値です。1 から 20 までのすべての数で割り切れる最小の正の数は?
問題 5 の解決策として、Ruby で次のコードを書きました。
num = 2520
until (1..20).all?{|x| num % x == 0}
num += 1
end
puts "#{num}"
ただし、スクリプトを実行するたびにハングします。基本ケース 2520 で 1 から 10 の範囲で同じ方法をテストしたところ、問題なく動作したことに注意してください。
より単純なケースでは機能するのに、より高度なケースでは機能しないのはなぜですか? 私が持っているものを修正するにはどうすればよいですか?