Вот сама функция
Код:
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.