public class Main { private static final int MAX_ARRAY_SIZE = 100; public static void main (String[] args){ outputTaskInfo(); outputResult(findMinimalNumber()); } public static void outputTaskInfo() { System.out.println("Данная программа находит наименьшее натуральное n по следующему правилу: " + "\n" + "Если последнюю цифру некоторого натурального числа n перенести и " + "\n" + "поставить перед первой цифрой этого числа, то получится число, в два раза больше n."); } public static int[] findMinimalNumber() { final int FACTOR = 2; int count = 0; int addition = 0; int flagIsCorrect = 0; int currentNumber = 2; int[] number = new int [MAX_ARRAY_SIZE]; while (flagIsCorrect < 1) { count++; currentNumber *= FACTOR; currentNumber += addition; if (currentNumber < 10) addition = 0; else { currentNumber -= 10; addition = 1; } number[count] = currentNumber; if (currentNumber == 2 && addition == 0) flagIsCorrect++; } return number; } public static void outputResult(int[] finalArr) { int count = 0; int flagIsCorrect = 0; int i = finalArr.length - 1; System.out.println("Самым малым натуральным n является: "); while (flagIsCorrect < 1) { if (finalArr[i] > 0) { flagIsCorrect++; count = i; } else i--; } for (i = count; i > 0; i--) System.out.print(finalArr[i]); } }