==============================
AKS-Test.
==============================
Обычно, когда проводят тест на простоту сталкиваются с тем, что определить простоту числа в большинстве тестов можно лишь с некоторой вероятностью.
Но математика не стоит на месте и сравнительно недавно появился AKS-тест, позволяющий быстро и гарантированно определить, является ли число простым.
Суть метода такова. Пусть число, которое мы тестируем обозначается A. У нас есть такое выражение:
. Если раскрыть скобки и привести это дело к многочлену вида
и все коофиценты k в этом многочлене делятся на A без остатка, то число А - простое. Без вариантов.
Блок-схема с числом n представлена на рисунке 1.
В цикле:
. (! - факториал)
P.S. В блок-схеме есть элемент вида (А). Он использовался для связи, так как места на стрелку справа не оказалось. Можешь их убрать и соединить освободившиеся места стрелкой.
var
x, n:integer;
begin
write('n = ');
readln(n);
x := n mod 10;
n := n div 10;
while n > 0 do
begin
if n mod 10 < x then
begin
writeln('Последовательность неупорядочена по возрастанию');
readln;
Exit;
end;
x := n mod 10;
n := n div 10;
end;
writeln('Последовательность упорядочена по возрастанию');
readln;
end.
16 Мбайт=2^4*2^23 (бит)
8^x бит=2^3x (бит)
2^3x =2^27
3x=27
x=9
<em>1.</em>
var
i: integer;
A: array [1..20] of integer;
begin
randomize;
writeln('Массив: ');
for i:=1 to 20 do A[i]:=random(21)-10;
for i:=1 to 20 do write(A[i]:5);
writeln;
writeln('Каждый пятый эелемент массива: ');
for i:=1 to 20 do if i mod 5 = 0 then write(A[i]:5);
end.
<span>
</span><em>2.</em>
var
x,i: integer;
A: array [1..20] of integer;
begin
randomize;
writeln('Массив: ');
for i:=1 to 20 do A[i]:=random(11);for i:=1 to 20 do write(A[i]:5);
writeln;
writeln('Натуральные числа в диапазоне [5..10]: ');
for i:=5 to 10 do write(A[i]:5);
writeln;
x:=1;
writeln('Их произведение: ');
for i:=5 to 10 do x:=A[i]*x;
write(x:5);
end.
Было - 6,8, при перемещении стало - 6. Ответ: 3 (0,8)