terça-feira, 6 de setembro de 2011

Nova maneira de algoritmo de números primos em DELPHI

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;
------------------------------------------------------------
Caso duvida por favor comentar.

Nenhum comentário:

Postar um comentário