A demostração de nova maneira de algoritmo de números primos para permite melhor velocidade.
Listagem:
------------------------------------------------------------
function Tform3.ehprimo(num: UInt64): boolean;
var
a: b: UInt64;
c: real;
np: boolean;
begin
if (num = 2) or (num = 3) then
begin
result := true;
exit;
end;
if (num > 3) and (num mod 2 = 0) then
np := FALSE
else
np := TRUE;
c := sqrt(num);
if trunc(c) = c then
np := FALSE;
if np then
begin
a := trunc(c);
b := num div a;
while np and (a > 1) do
if (a * b) = num then
np := FALSE
else
begin
dec(a);
b := num div a;
end;
end;
result := np;
end;
var
a: b: UInt64;
c: real;
np: boolean;
begin
if (num = 2) or (num = 3) then
begin
result := true;
exit;
end;
if (num > 3) and (num mod 2 = 0) then
np := FALSE
else
np := TRUE;
c := sqrt(num);
if trunc(c) = c then
np := FALSE;
if np then
begin
a := trunc(c);
b := num div a;
while np and (a > 1) do
if (a * b) = num then
np := FALSE
else
begin
dec(a);
b := num div a;
end;
end;
result := np;
end;
------------------------------------------------------------
Caso duvida por favor comentar.
Nenhum comentário:
Postar um comentário