Немного неоптимально решена задачка. А мозг ломается в попытках разобраться что где и почему. подождите еще немного. постараюсь объяснить.
program Pr;
function Prost(a:longint):boolean; \\а - это есть число
var i:longint; \\Переменные i- число делитель
f:boolean \\f - операнд говорящий да и ли нет
begin
if a<2 then f:=false \\Если а меньше 2х, то прерываем выполнение
else \\Если больше 2х, то идем дальше
begin
f:=true;i:=2; \\Выставляем изначальные значения
while (i*i<=a)and f do \\Пока квадрат числа меньше а, и пройдена проверка на то что больше 2 (зачем оно здесь, если было выше - непонятно, но хрен с ним. Да и не корень из числа а надо брать, а просто поделить его пополам для уменьшения числа действий. )
if a mod i=0 then f:=false \\Если число а делится на другое число (i) без остатка, то говорим что число не простое.
else inc(i) \\Если не делится то увеличиваем проверочное число i на 1.
end;
Prost:=f; \\Присваиваем значение "да" или "нет" которое передается в основную программу.
end; \\конец функции
var i,k:integer; \Объявление переменных
begin
i:=100; \Установка начала отсчета (тк 3хзначные числа, то берем 100)
k:=0; \переменная к отвечает за количество простых чисел
repeat \Начало цикла повтора с постусловием (условие в конце)
if Prost(i)then \Запуск функции проверки числа на простоту и получение значения "да" или "нет"
begin \Если "да" то идем дальше
write(i:4); \\Пишем это число и оставляем пробел в 4 символа
k:=k+1; \\Подсчитываем количество простых чисел
if k mod 10=0 then writeln; \\Если количество набралось более 10, то переходим на новую строку
end;
i:=i+1; \\Увеличиваем число на 1
until i=999; \\А это условие счетчика: пока число не станет равно 999.
end.