Текст подпрограммы и версий
pa12i_p.zip 
Тексты тестовых примеров
tpa12i_p.zip 

Подпрограмма:  PA12I (модуль PA12I_p)

Назначение

Вычисление последовательности простых чисел.

Математическое описание

Подпрограмма PA12I вычисляет последовательность простых чисел (включая единицу), не превосходящих заданного натурального N, используя алглоритм, имеющий название "решето Эратосфена". Полученная последовательность помещается в массиве IP, длина которого

           не больше [ 1.6N / lnN + 1 ] ,  если N ≤ 200 ,

   или не больше [ N / (lnN-2) + 1 ] ,  если N > 200 . 

Символ [ ] означает целую часть числа.

Использование

procedure PA12I(N :Integer; var IP :Array of Integer); 

Параметры

N - заданное значение натурального числа, для которого ищутся простые числа, не превосходящие его (тип: целый);
IP - целый одномерный массив длины [1.6N/lnN + 1], если N ≤ 200, или длины
[N/(lnN - 2) + 1], если N > 200, в котором помещается вычисленная последовательность простых чисел.

Версии: нет

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

Unit tpa12i_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, PA12I_p;

function tpa12i: String; 

implementation

function tpa12i: String;
var
N,_i :Integer;
IP :Array [0..34] of Integer;
BЕGin
Result := '';
N := 100;
PA12I(N,IP);
Result := Result + #$0D#$0A;
for _i:=0 to 34 do
 begin
  Result := Result + Format('%4d ',[IP[_i]]);
  if ( ((_i+1) mod 18)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
UtRes('tpa12i',Result);  { вывод результатов в файл tpa12i.res }
exit;
end;

end.

Результаты:

       IP = 1, 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