Потребовалось определиться с максимальным порядком чисел, в программе воспользовался функциями из стандартных библиотек.
Условия задачи
Удивительно, но существует только три числа, которые могут быть записаны в виде суммы четвертых степеней их цифр:
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.
Найдите сумму всех чисел, которые могут быть записаны в виде суммы пятых степеней их цифр.
Описание работы программы
Прежде всего нужно определиться до какого числа проверять.
9^5 даст пятизначное число, пять таких чисел в сумме могут дать шестизначное. Шесть чисел - тоже шестизначное, т.к. чтобы получить семизначное число, то понадобится 9^5 сложить минимум десять раз.
Таким образом рассуждая, решил проверять числа только лишь до 1000000.
В программе все просто:
- выделял младший разряд числа, возводил его в степень, уменьшал число на порядок.
- Сумму цифр числа в 5 степени сравнивал с самим числом.
При возведении чисел в пятую степень пользовался функцией pow() библиотеки <math.h>, думаю ее писали не глупые люди и она работает побыстрее чем какие-либо мои выражения.
Ответ на задачу:
P.S. Изначальная цель блога - получить "фидбек" в комментариях, чтобы более опытные "кодеры" указывали мне на ошибки, советовали и всячески помогали в саморазвитии.
Также приглашаю всех на мой сайт)
На нем Вы можете посмотреть ответ на задачу Эйлера 30 (когда необходима лишь небольшая подсказка) и последний, самый быстрый вариант решения.
В общем, добро пожаловать на канал))