1. валидатор не принимает
2. какую библиотеку надо подключить чтобы использовать - ArmstrongNumbersMultiSetLongOpt
вручную проверял- всё работает
package com.javarush.task.task20.task2025;
import java.io.*;
import java.util.ArrayList;
/*
Алгоритмы-числа
*/
public class Solution
{
public static long[] getNumbers(long N)
{
long[] result = null;
ArrayList<Long> arrayreslong = new ArrayList<>();
int sizeofN = (String.valueOf(N)).length();
if(N >= 0)
{
for( long k = 0; k <= N; k++)
{
String chislo = String.valueOf(k);
// System.out.println("число: " + chislo);
int m=chislo.length(); // количество цифр
// System.out.println("количество цифр: " + m);
char[] chislochar = chislo.toCharArray(); // разбили на цифры
int digit = 0;
int res = 0;
for( int i=0; i < m; i++)
{
digit = (int) Character.getNumericValue(chislochar[i]);
//System.out.println("digit: " + digit);
res = res + (int)(Math.pow(digit, m));
}
long resultlong = (long)(res);
//System.out.println("resultlong: " + resultlong);
if((k-resultlong)==0)
{
arrayreslong.add(resultlong);
// System.out.println("resultlong: " + resultlong);
// System.out.println("arrayreslong.size(): " + arrayreslong.size());
}
}
result = new long[(arrayreslong.size())];
//System.out.println("arrayreslong.size(): " + arrayreslong.size());
for( int r = 0; r<arrayreslong.size(); r++)
{
result[r] = arrayreslong.get(r);
// System.out.println(" result[r] :" + " r = " + r + " " + result[r]);
}
}
else
{
System.out.println("отрицательное");
}
// ArrayList<Integer> list = ArmstrongNumbersMultiSetLongOpt.generate((int) (Math.log10(sizeofN)));
return result;
}
public static void main(String[] args)
{
Long t0 = System.currentTimeMillis();
int n = Integer.MAX_VALUE;
long[] numbers = getNumbers(1000);
Long t1 = System.currentTimeMillis();
System.out.println("time: " + (t1 - t0) / 1000d + " sec");
System.out.println("memory: " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024 * 1024) + " mb");
for( int y=0; y<numbers.length; y++)
System.out.print(numbers[y] + " ");
}
}