Просто решил подогнать алгоритм ArmstrongNumbersMultiSetLongOpt под задачу. И что забавно - оно работает, но только если в метод getNumbers передавать значение не больше, чем Integer.MAX_VALUE ! Хотя метод принимает на вход Long ! Например, если передать в метод значение 2147483647 (Integer.MAX_VALUE), то работает норм, а если уже 2147483648, то пишет Integer number too large. Если же передавать Long.MAX_VALUE, то ошибки не выдает, только при запуске уже вылетает нуль-поинтер-эксепшн. Короче, можете запустить код у себя и увидите сами. Это что значит ?)) P.S. А, блин, одинаковое название переменных private static int N и getNumbers(long N) ... P.S.2 Убрал "конфликт" переменных, но та же самая проблема осталась.