Кодuses System, System.Net, System.Threading.Tasks, System.Collections.Generic;type ListSimple = class l := new List<int64>(); procedure AddSimple(N: int64); begin var Result := True; var num := n; while num > 0 do begin if not (num mod 10 in [2,3,5,7]) then begin Result := False; break; end; num := num div 10; end; if not Result then exit; for var i: int64 := 2 to round(sqrt(N)) do if N mod i = 0 then begin Result := False; break; end; // lock не позволяет нескольким потокам одновременно выполнять эту секцию. // Это обязательно, иначе если несколько потоков одновременно будут пытаться добавить значение в список, список может оказаться испорченным // Секция, охраняемая lock, называется критической lock l do if Result then l.Add(N); end; end;var hh := 100000;begin var ls := new ListSimple; var ii: int64 := 2; Parallel.For(ii, ii + hh, ls.AddSimple); writeln(ls.l.Count); ls.l := ls.l.OrderBy(x->x).ToList(); //- это можно включить для проверки того, что в обоих списках - одинаковые простые числа for var i := 0 to ls.l.Count - 1 do writeln(i+1,' - ',ls.l[i]); writeln; writeln('Время выполнения = ', Milliseconds); end.Список суперпростых1 - 22 - 33 - 54 - 75 - 236 - 377 - 538 - 739 - 22310 - 22711 - 23312 - 25713 - 27714 - 33715 - 35316 - 37317 - 52318 - 55719 - 57720 - 72721 - 73322 - 75723 - 77324 - 223725 - 227326 - 233327 - 235728 - 237729 - 255730 - 275331 - 277732 - 325333 - 325734 - 332335 - 337336 - 352737 - 353338 - 355739 - 372740 - 373341 - 522742 - 523343 - 523744 - 527345 - 532346 - 533347 - 552748 - 555749 - 557350 - 573751 - 723752 - 725353 - 733354 - 752355 - 753756 - 757357 - 757758 - 772359 - 772760 - 775361 - 775762 - 2227363 - 2227764 - 2257365 - 2272766 - 2277767 - 2322768 - 2332769 - 2333370 - 2335771 - 2353772 - 2355773 - 2375374 - 2377375 - 2523776 - 2525377 - 2535778 - 2537379 - 2552380 - 2553781 - 2557782 - 2573383 - 2725384 - 2727785 - 2733786 - 2752787 - 2773388 - 2773789 - 2777390 - 3223391 - 3223792 - 3225793 - 3232394 - 3232795 - 3235396 - 3237797 - 3253398 - 3253799 - 32573100 - 33223101 - 33353102 - 33377103 - 33533104 - 33577105 - 33757106 - 33773107 - 35227108 - 35257109 - 35323110 - 35327111 - 35353112 - 35527113 - 35533114 - 35537115 - 35573116 - 35753117 - 37223118 - 37253119 - 37273120 - 37277121 - 37337122 - 37357123 - 37537124 - 37573125 - 52223126 - 52237127 - 52253128 - 52553129 - 52727130 - 52733131 - 52757132 - 53233133 - 53323134 - 53327135 - 53353136 - 53377137 - 53527138 - 53773139 - 53777140 - 55333141 - 55337142 - 55373143 - 55733144 - 57223145 - 57373146 - 57527147 - 57557148 - 57727149 - 57737150 - 57773151 - 72223152 - 72227153 - 72253154 - 72277155 - 72337156 - 72353157 - 72533158 - 72577159 - 72727160 - 72733161 - 73237162 - 73277163 - 73327164 - 73523165 - 73553166 - 73727167 - 73757168 - 75223169 - 75227170 - 75253171 - 75277172 - 75323173 - 75337174 - 75353175 - 75377176 - 75527177 - 75533178 - 75553179 - 75557180 - 75577181 - 75773182 - 77237183 - 77323184 - 77377185 - 77527186 - 77557187 - 77573188 - 77723189 - 77773