
С помощью Ruby есть (по крайней мере, в моей скромной голове)два способа решить эту проблему:
Сначала создайте массив кратных троек и пятерок, от одного до девятисот девяноста девяти. Сложите их и вычтите из суммы массива кратных пятнадцати от одного до девятисот девяноста девяти (наименьший общий делитель).
def sum
three = (1..999).to_a.reject {|n| n % 3 != 0}.reduce(:+)
five = (1..999).to_a.reject {|n| n % 5 != 0}.reduce(:+)
fifteen = (1..999).to_a.reject{|n| n % 15 != 0}.reduce(:+)
return three + five — fifteen
end
Второй код, очень похожий на первый, за исключением того, что вместо добавления массива массивы объединяются, а повторяющиеся элементы удаляются перед суммированием.
def sum2
three = (1..999).to_a.reject {|n| n % 3 != 0}
five = (1..999).to_a.reject {|n| n % 5 != 0}
total = (three | five).reduce(:+)
end

Вы 575039 человек, решивший эту задачу.
— однозначно, я элита среди элит