martes, julio 15, 2008

Y nacieron los números primos

Hola,
Estoy reventado. Acabo de llegar a casa. Es bastante tarde en mi ciudad.
Voy a obligarme un poco a escribir mientras veo un rollo de película.

Creo que el tema de los números primos es muy importante en las matemáticas y que se pueden programar algunas funciones que nos den algún indicio de su comportamiento.

Primero un poco de historia para lo cual nos tenemos que remontar a los tiempos de euclides. No voy a reinventar la rueda. Me imagino que en Wikipedia hay suficiente información. Por lo tanto empezamos echando un vistazo a http://es.wikipedia.org/wiki/Euclides

Bien, en la wikipedia no han olvidado "Los elementos". La gran obra de Euclides. La recopilación de la mayor parte del conocimiento matemático a la que había llegado el hombre en 13 volúmenes.

El libro VII de Los elementos comienza con 22 definiciones entre las que se encuentran la del número par, el impar y el número primo. Dice que un número primo es aquel que no tiene otros divisores enteros distintos de la unidad y del propio número.

Una de las cosas que consiguió demostrar Euclides es que existen infinitos números primos. Veremos la demostración más adelante (me refiero a otro día).

Por hoy nos conformaremos con una función que nos diga si un número es primo o no. Se llamará función EsPrimo.


El código fuente:


program EsPrimo;
var
numero,i:integer;

function EsPrimo(var num):boolean;
begin
for i:=numero-1 downto 2 do
begin
if numero mod i = 0 then
begin
EsPrimo:=false;
exit;
end;
end;
EsPrimo:=true;
end;

begin
repeat
write('Introduce un numero mayor que 0: ');
readln(numero);
until numero>0;
if EsPrimo(numero) then
writeln('Es un numero primo')
else
writeln('No es un numero primo');
readln;
end.


No hay comentarios: