Проблема этого решения в том, что оно не позволяет доставать промежуточные значения, a именно в этом и заключается задача.
Если же несколько изменить это решение, чтобы запоминать числа, то в итоге получится решение Adamos.)
С чего это вдруг?
Во-первых, количество итераций уменьшится в несколько раз.
Во-вторых, уберутся проверки на кратность 3 и 5. И остаток от деления останется лишь один, для высчитывания следующего индекса порядка. То есть останется лишь одна проверка на размер текущей суммы.
Насчёт разбивания классов на мультилайн не уверен, но за всё остальное отвечает printWidth: <int>. Только строка должна быть достаточной длины, чтобы мульталайниться.
Если же несколько изменить это решение, чтобы запоминать числа, то в итоге получится решение Adamos.)