Текст подпрограммы и версий pa12i_p.zip |
Тексты тестовых примеров tpa12i_p.zip |
Вычисление последовательности простых чисел.
Подпрограмма 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