Простым называется число, которое не имеет других делителей, кроме единицы и самого этого числа. Для решения этой задачи воспользуемся методом "решета Эратосфена", идея которого заключается в следующем: сформируем множество М, в которое поместим все числа заданного промежутка. Затем последовательно будем удалять из него элементы, кратные 2, 3, 4 и так далее, до [n/2] (целая часть числа). После такого "просеивания" в множестве М останутся только простые числа.
Примечание. Легко доказать, что можно удалять числа, кратные 2, 3, 4 и так далее, до [sqrt(n)], то есть до целой части квадратного корня числа n.
Ниже приведен вариант решения этой задачи.
Program Example_142;
Var m: Set Of Byte;
i, k, n: Integer;
Begin
Writeln('введите размер промежутка
(до 255)');
Readln(n);
m:=[2..n]; {начальное значение}
For k:=2 To n Div 2 Do
{перебираем все делители }
For i:=2 To n Do {если число кратно
делителю и отлично от него, то удаляем
его}
If (i Mod k=0) And (i<>k) Then m:=m-[i];
{распечатаем оставшиеся элементы}
For i:=1 To n Do
If i in m Then Write(i:3);
Readln;
End.
Пример 5
Дан ребус:
МУХА
МУХА
СЛОН