Последовательность простых чисел начинается так:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, …
Функция простого числа на паскале
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 5
Вывод 1
2
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.