I don't really understand why it is not verifying anything.
It is compiling all right, and the output seems correct.
package com.codegym.task.task20.task2025;
import java.util.Arrays;
import java.util.*;
/*
Number algorithms
*/
public class Solution {
public static long[] getNumbers(long N) {
long number = 1;
ArrayList<Long> digits = new ArrayList<Long>();
long[] result = null;
while(number<N){
String[] split = Long.toString(number).split("");
long res = 0;
for(String num : split){
double temp = Math.pow(Long.valueOf(num), split.length);
res += (long) temp;
}
if(res == number){
digits.add(number);
}
number++;
}
result = new long[digits.size()];
for(int i = 0; i<digits.size(); i++)
result[i] = digits.get(i);
return result;
}
public static void main(String[] args) {
long a = System.currentTimeMillis();
System.out.println(Arrays.toString(getNumbers(1000)));
long b = System.currentTimeMillis();
System.out.println("memory " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (8 * 1024));
System.out.println("time = " + (b - a) / 1000);
a = System.currentTimeMillis();
System.out.println(Arrays.toString(getNumbers(1000000)));
b = System.currentTimeMillis();
System.out.println("memory " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (8 * 1024));
System.out.println("time = " + (b - a) / 1000);
}
}