Подскажите пожалуйста в чем может быть ошибка.
package com.javarush.task.task20.task2025;
import java.util.*;
/*
Алгоритмы-числа
*/
public class Solution {
public static long[] getNumbers(long N) {
ArrayList<Long> array = new ArrayList<>();
long[] result = null;
long remainder1 = 0;
int count =0;
for (Long i = N-1; i > 0; i--) {
int length = i.toString().length();
long jjj = i;
for (int j = 0; j <= length-1; j++){
long remainder = jjj %10;
remainder1 += sum(remainder, length);
jjj = jjj/10;
}
if (remainder1 == i){
// result[count] = remainder1;
array.add(remainder1);
count++;
}
remainder1 = 0;
}
Collections.sort(array);
result = new long[array.size()];
for (int i = 0; i < array.size(); i++){
result[i] = array.get(i);
}
// for (Long a : array){
// System.out.println(a);
// }
return result;
}
public static void main(String[] args) {
//
// long beforeUsedMem=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
// long startTime = System.currentTimeMillis();
long [] total = Solution.getNumbers(8209);
//
// long endTime = System.currentTimeMillis();
// double timeElapsed = endTime - startTime;
//
//
// System.out.println(timeElapsed/1000);
//
// long afterUsedMem=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
// long actualMemUsed=afterUsedMem-beforeUsedMem;
// System.out.println(actualMemUsed);
// for (Long a : total){
// System.out.println(a);
// }
// System.out.println(sum(7,2));
}
public static long sum(long a, int length){
long c = a;
long b = 0;
for (; length-1 > 0; length-- ){
b = c*a;
c = b;
}
return b;
}
public static long square(long a ){
return a*a;
}
}