Ну вот, я опять сломал сервер.
При проверке подвисает и выдаёт, что слишком долго. При этом у меня на ПК этот алгоритм выполняется меньше секунды.
Неужели мой i7 слишком мощный для этой задачи? :)
package com.javarush.task.task20.task2025;
import java.util.ArrayList;
import java.util.List;
/*
Алгоритмы-числа
*/
public class Solution {
public static long[] getNumbers(long N) {
List<Long> list = new ArrayList<>();
for (long i = 0; i <= N; i++) {
int M = String.valueOf(i).length();
long[] array = new long[M];
long d = i;
for (int j = 0; d > 0; j++) {
array[j] = d % 10;
d /= 10;
}
long sum = 0;
for (long arr : array) {
long num = 1;
for (int j = 0; j < M; j++) {
num *= arr;
}
sum += num;
}
if (sum == i) {
list.add(i);
}
}
Long[] result = new Long[list.size()];
result = list.toArray(result);
//привести Long[] к long[]
long[] rez = new long[result.length];
for (int i = 0; i < result.length; i++) {
rez[i] = result[i];
}
return rez;
}
public static void main(String[] args) {
long[] numbers = getNumbers(370);
for (long number : numbers) {
System.out.println(number);
}
}
}