Простые числа в интервале на Java — программа с вложенными циклами

Чтобы найти все простые числа в заданном интервале [low, high], нужно проверить на простоту каждое число в этом диапазоне.

Пример: вывод простых чисел между двумя интервалами

Внешний цикл while перебирает числа от low до high, а внутренний for проверяет каждое из них на простоту.

public class Prime {

    public static void main(String[] args) {

        int low = 20, high = 50;

        while (low < high) {
            boolean flag = false;

            for(int i = 2; i <= low/2; ++i) {
                // condition for nonprime number
                if(low % i == 0) {
                    flag = true;
                    break;
                }
            }

            if (!flag && low != 0 && low != 1)
                System.out.print(low + " ");

            ++low;
        }
    }
}

Вывод:

23 29 31 37 41 43 47

В программе каждое число между low и high проверяется на простоту. Внутренний цикл for определяет, простое число или нет.

Важно

Главное отличие от проверки одного числа в том, что значение flag = false нужно сбрасывать на каждой итерации внешнего цикла.

Примечание

Если интервал начинается с 0 или 1, эти числа нужно исключить, так как они не являются простыми. Поэтому условие выглядит так:

if (!flag && low != 0 && low != 1)