397 подписчиков

Решение 30 задачи проекта Эйлера: Пятые степени цифр

Потребовалось определиться с максимальным порядком чисел, в программе воспользовался функциями из стандартных библиотек.

Условия задачи

Удивительно, но существует только три числа, которые могут быть записаны в виде суммы четвертых степеней их цифр:

1634 = 1^4 + 6^4 + 3^4 + 4^ 4
8208 = 8^4 + 2^4 + 0^4 + 8^4
9474 = 9^4 + 4^4 + 7^4 + 4^4

1 = 1^4 не считается, так как это - не сумма.

Сумма этих чисел равна 1634 + 8208 + 9474 = 19316.

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

Описание работы программы

Программа для решения задачи Эйлера #30
Программа для решения задачи Эйлера #30

Прежде всего нужно определиться до какого числа проверять.

9^5 даст пятизначное число, пять таких чисел в сумме могут дать шестизначное. Шесть чисел - тоже шестизначное, т.к. чтобы получить семизначное число, то понадобится 9^5 сложить минимум десять раз.

Таким образом рассуждая, решил проверять числа только лишь до 1000000.

В программе все просто:

  • выделял младший разряд числа, возводил его в степень, уменьшал число на порядок.
  • Сумму цифр числа в 5 степени сравнивал с самим числом.

При возведении чисел в пятую степень пользовался функцией pow() библиотеки <math.h>, думаю ее писали не глупые люди и она работает побыстрее чем какие-либо мои выражения.

Ответ на задачу:

P.S. Изначальная цель блога - получить "фидбек" в комментариях, чтобы более опытные "кодеры" указывали мне на ошибки, советовали и всячески помогали в саморазвитии.

Также приглашаю всех на мой сайт)

На нем Вы можете посмотреть ответ на задачу Эйлера 30 (когда необходима лишь небольшая подсказка) и последний, самый быстрый вариант решения.

Нравится? Подпишитесь)
Нравится? Подпишитесь)

В общем, добро пожаловать на канал))