Определить количество простых чисел | Язык Паскаль

Определить количество простых чисел

С клавиатуры вводятся целые числа до первого числа, которое меньше двух. Написать программу, которая определяет сколько простых чисел было введено.

Простые числа - это натуральные числа больше единицы, которые делятся нацело только на единицу и на себя. Например, число 3 простое, так как нацело делится только на 1 и 3. Число 4 сложное, так как нацело делится не только на 1 и 4, но также на число 2.

Перебор делителей – это алгоритм, применяемый для определения, является ли натуральное число простым, или оно является сложным, то есть составным. Алгоритм перебора делителей заключается в последовательном делении заданного натурального числа на все целые числа, начиная с двойки и заканчивая значением меньшим или равным квадратному корню из тестируемого числа.

Если хотя бы один делитель делит исследуемое число без остатка, значит это число является составным. Если ни одного такого делителя не находится, то число признается простым.

Введем переменные:

Пока введенное число больше 1, проверять его на простоту по следующему алгоритму:

  1. Если число делится на любой делитель от 2 до квадратного корня из себя, то оно составное.
  2. Если число так и не разделилось нацело ни на один из делителей, то оно простое, следовательно, увеличиваем счетчик простых чисел.
var
    number, count, i: integer;
    flag: boolean;
 
begin
    count := 0;
    readln(number);
 
    while number > 1 do begin       

        flag := TRUE;
 
        for i := 2 to round(sqrt(number)) do
            if number mod i = 0 then begin
                flag := FALSE;
                break;
            end;
 
        if flag then
            count := count + 1;
 
        readln(number);
    end;
 
    writeln('Простых чисел: ', count);
end.

Пример выполнения программы:

56
31
18
15
7 
101
0
Простых чисел: 3

Пример решения похожей задачи в сообществе VK: Составить программу для проверки утверждения: "Результатами вычислений по формуле x² + x + 17 при 0 ≤ x ≤ 15 являются простые числа."