Вот сама функция
Код:
function pr(x:longint):boolean;
var d:longint;
begin
if x mod 2 =0 then pr:=(x=2)
else
begin
d:=3;
while (d*d<=x)and(x mod d <>0) do
d:=d+2;
pr:=(d*d>x)and(x<>1);
end;
end;Пример задачи
Вывести все простые числа от M до N включительно.
Ограничения: 2 <= M <= N <= 300 000.
Ввод: В первой строке находятся разделённые пробелом M и N.
Вывод: Вывести числа в порядке возрастания, по одному в строке. Если между M и N включительно нет простых - вывести "Absent".
Примеры
Ввод 1 Ввод 2
2 5 4 4
Вывод 1 Вывод 2
2 Absent
3
5
Код:
var n,m,i,f:LONGINT;
function pr(x:longint):boolean;
var d:longint;
begin
if x mod 2 =0 then pr:=(x=2)
else
begin
d:=3;
while (d*d<=x)and(x mod d <>0) do
d:=d+2;
pr:=(d*d>x)and(x<>1);
end;
end;
begin
f:=0;
readln(n,m);
for i:=n to m do
if pr(i) then begin writeln(i); f:=1; end;
if f=0 then writeln('Absent');
end.