Решение построено исходя из статьи. Программа высчитывает значение ряда чисел согласно правилу: "любая цифра не меньше предыдущей и не больше последующей". Вычисления начинаются с 1. Цикл прерывается, если очередное число больше N или равно -1. Для каждого числа рассчитывается степенная сумма. Если набор цифр степенной суммы совпадает с набором цифр текущего числа, то степенная сумма - это число Армстронга. Что учитывает код: - Нулевое и отрицательные значения параметра метода getNumbers Вывод
[1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407]
memory 317
time = 0
[1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208, 472335975, 534494836, 912985153, 4679307774, 32164049650, 32164049651, 40028394225, 42678290603, 44708635679, 49388550606, 82693916578, 94204591914, 28116440335967, 4338281769391370, 4338281769391371, 21249285264662860]
memory 18549
time = 23