Автор Вик Торнов задал вопрос в разделе Java
Как усовершенствовать (ускорить) данный алгоритм по поиску чисел Армстронга)? и получил лучший ответ
Ответ от Jurijus Zaksas[гуру]
В десятичной системе существует всего 88 чисел Армстронга. Соответственно, быстрее всего их просто взять из таблички и напечатать.
Jurijus Zaksas
(186760)
Надо просто хранить возведенные в степень числа и их суммы, а не считать их каждый раз и не возводить. Пересчет массива - при только при изменении степени.
Начинать при этом стоит с самого большого числа и "сматывать" вниз.
Ответ от Shalafi[гуру]
задалбали кидать на мэил код, кидайте ссылкой на пастбин...
задалбали кидать на мэил код, кидайте ссылкой на пастбин...
Ответ от User51942[гуру]
перебираешь длину числа, генерируешь массив чисел 0..9 в степени длины
рекурсией (или чем там модно) перебираешь нужное количество цифр, считаешь их сумму с учётом возведения в степень и смотришь, можно ли получить это число путем перестановки перебранных цифр
я хреново объясняю, так что ищи готовый пример на питоне на странице OEIS
перебираешь длину числа, генерируешь массив чисел 0..9 в степени длины
рекурсией (или чем там модно) перебираешь нужное количество цифр, считаешь их сумму с учётом возведения в степень и смотришь, можно ли получить это число путем перестановки перебранных цифр
я хреново объясняю, так что ищи готовый пример на питоне на странице OEIS
Ответ от Їайкин Виталий[гуру]
Разбить задачу на этапы:
1. вычисляем квадраты, кубы, в четвертой ...от 1 до max
2. перебираем числа от 1 до Предела, суммируем числа вычисленные на этапе 1
Разбить задачу на этапы:
1. вычисляем квадраты, кубы, в четвертой ...от 1 до max
2. перебираем числа от 1 до Предела, суммируем числа вычисленные на этапе 1
Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как усовершенствовать (ускорить) данный алгоритм по поиску чисел Армстронга)?