С помощью 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 человек, решивший эту задачу.

— однозначно, я элита среди элит