КШ
Капитолина Шакирова

Пожалуйста, объясните пошагово эту задачу:



program Pr;
function Prost(a:longint):boolean;
var i:longint;
f:boolean;
begin
if a<2 then f:=false
else
begin
f:=true;i:=2;
while (i*i<=a)and f do
if a mod i=0 then f:=false
else inc(i)
end;
Prost:=f;
end;
var i,k:integer;
begin
i:=100;
k:=0;
repeat
if Prost(i)then
begin
write(i:4);
k:=k+1;
if k mod 10=0 then writeln;
end;
i:=i+1;
until i=999;
end.

Условие: Найти все трехзначные простые числа

Объясните также, что означают все эти i, kи т. д. ) То, что это параметры или переменные, я и сама знаю. Что именно они обозначают?

ЮЖ
Юлия Жуковецкая

Немного неоптимально решена задачка. А мозг ломается в попытках разобраться что где и почему. подождите еще немного. постараюсь объяснить.

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.

Похожие вопросы
Объясните пожалуйста задачу.
Объясните пошагово как решить эту задачу пожалуйста! Из точки А (6;9)...
Добрые люди) Помогите пожалуйста) Объясните задачу пожалуйста)
объясните пожалуйста задачу!
Объясните решение задачи на Pascal
Объясните, пожалуйста, подробно, пошагово, как решить такую систему?
Объясните эту задачу пожалуйста.
Как готовить чипсы? объяснить пошагово
Объясните эту задачу.
С++ Выполнить пошаговую компиляцию (трассировку) программы решающей задачу