Calcular si un numero es primo en Delphi - Pascal
2006-10-30 02:29:22
A petición de un visitante desde google, una sencillisima función para calcular si un número es primo. Tan sencilla, que solo me he permitido una levísima optimización, ya que solo busca posibles divisores entre el 2 y la raiz del número [*].
function esPrimo(x : integer) : boolean;var
i,r : longint;
begin
r:=round(sqrt(x));
for i:=2 to r do
if (x mod i=0) then
begin
esPrimo:=false;
exit;
end;
esPrimo:=true;
end;
Otras optimizaciones por si hay prisa: solo comprobar divisores impares, descartar como primos numeros terminados en 0,2,4,5,6 y 8, crear tablas de primos ya calculados para usar como divisores (google: Siega de Eratostenes), etecé, etecé.