evgeniy8705
@evgeniy8705
Повелитель вселенной

Как сократить число итераций внутреннего цикла?

Есть пример кода, результатом которого в консоль выводятся числа от 2 до 100 с их делителями без остатка.
Вопрос: Как можно уменьшит число итераций внутреннего цикла?

public class App {
    public static void main(String[] args) {
        for (int i = 2; i <= 100; i++) {
            System.out.print("Делители " + i + ": ");

            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    System.out.print(j + " ");
                }
            }

            System.out.println("");
        }
    }
}
  • Вопрос задан
  • 1114 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
Так сойдет? Вдвое меньше.

public class App {
    public static void main(String[] args) {
        for (int i = 2; i <= 100; i++) {
            System.out.print("Делители " + i + ": ");

            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    System.out.print(j + " ");
                }
                j++;
                if (i % j == 0) {
                    System.out.print(j + " ");
                }

            }

            System.out.println("");
        }
    }
}


А вообще, у вас не указана цель, зачем сокращать итерацию.
Ответ написан
Комментировать
@kolaygreha
Я вообще скомбинировал эти два способа и число итераций уменьшил в 4 раза! Только j <= i уже нужно писать, иначе иногда последний делитель не захватывается, так как шаг по сути равен двум становится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы