1 1112
2 2022112120
3 110131121
4 1221
<em>// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
function IsPrime(n:integer):boolean;
begin
if n<4 then Result:=True
else begin
var found:=(n mod 2=0);
var p:=3;
while (not found) and (sqr(p)<=n) do
begin found:=(n mod p=0); p+=2 end;
Result:=not found
end
end;
begin
var a:=ArrRandom(ReadInteger('n='),0,100); a.Println;
var primes:=a.Where(x->IsPrime(x)).ToArray;
primes.Sort;
primes.Println
end.
<u>Пример</u>
n= 17
33 23 56 58 32 2 5 72 68 59 89 30 17 40 44 21 23
2 5 17 23 23 59 89
Максимальное значение адреса = FFF = 1111 1111 1111 (2cc)
1+FFF=2^ (12) =4096 ячеек памяти
Перепишем в более удобный для преобразования эквивалентный вид и сделаем некоторое преобразование с тем, чтобы получить как можно больше отрицаний (из-за использования логики с инверсией - это минимизирует число элементов схемы).