Найти тему
ZDG

Проект Эйлер 34: Факториалы цифр

Задача

145 является любопытным числом, поскольку 1! + 4! + 5! = 1 + 24 + 120 = 145.

Найдите сумму всех чисел, каждое из которых равно сумме факториалов своих цифр.

Примечание: поскольку 1! = 1 и 2! = 2 не являются суммами, учитывать их не следует.

Решение

Даже не знаю, почему эта задача 34-я по списку, она вполне могла бы быть первой. Тут нет ничего сложного и всё считается напрямую.

Факториалы цифр от 0 до 9 заранее посчитаны и занесены в массив factorials. Обратите внимание, что 0! = 1.

Дальше просто перебираем числа, разделяем на разряды, берём факториалы от разрядов и находим их сумму. Сумму сравниваем с самим числом, и если они равны, то добавляем эту сумму к общей сумме total.

Небольшой нюанс заключается в нахождении верхнего предела цикла. Он находится где-то в районе 9! * 7, но я взял побольше, так как более точно считать неинтересно.

Ссылка на онлайн-компилятор языка C с текстом программы

Подборка всех задач:

Проект Эйлер | ZDG | Дзен