Проверь, что в методе getNumbers не возникает исключения, при любых входных данных.
package com.javarush.task.task20.task2025;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/*
Алгоритмы-числа
*/
public class Solution {
public static Long[] getNumbers(long N) {
Long[] result = null;
int times = 0;
long max = N;
long s = 0;
long f = 1;
int a =1;
int kk = 0;
int count = 0;
String num;
List<Long> list = new ArrayList<>();
// List<Long> list = new ArrayList<>();
int n = 0;
//перечисляем цифры от 1 до макс
for (int i = 1; i <= max; i++){
//берем цифру i; вычисляем количество символов допустим 123
// times = String.valueOf(i).length();
num = i+"";
times = num.length();
a = i;
//берем символы по одному
for (int j = 1; j <= times;j++){
kk = a%10;
//возводим в степень по количеству символов
for (int k = 1; k<= times;k++){
f = kk*f;
}
// System.out.println(f);
s = s + f;
a = a/10;
f= 1;
}
if((s == i)&&(s< Long.MAX_VALUE)){
list.add(s);
}
s = 0;
}
result = list.stream().toArray((Long[]::new));
return result;
}
public static void main(String[] args) {
}
}