sábado, 14 de septiembre de 2013

Matemáticas y programación - Algoritmo para saber si un número es primo

Los Números primos son aquellos números naturales mayores que 1 y que sólo pueden dividirse entre sí mismos y entre 1, de lo contrario los números compuestos son aquellos que sí se pueden dividir con otro/s número/s naturales a demás de por sí mismo y entre 1, como curiosidad el único número par primo es el número 2, el resto de números primos son impares ...

Los números primos menores que cien son los siguientes: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 y 97

El conocimiento de los números primos es una parte fundamental para el mundo de las ciencias, en la computación prueba de ello es el algoritmo RSA que se basa en la obtención de la clave pública mediante la multiplicación de dos números grandes (mayores que 10 elevado a 100) que sean primos. La seguridad de este algoritmo radica en que no se conocen maneras rápidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales.

El siguiente algoritmo verifica si el número introducido es un número primo o de lo contrario es un número compuesto ...


Algoritmo para saber si un número es primo
 
function primo()
{
number = parseInt(document.getElementById("number").value);
if (number > 1)
{
calcular = new Array();
impr = "";
for (x = 2; x <= number-1; x++)
{
calcular[x] = parseFloat(number / x);
        if (calcular[x] % 1 == 0) {
        impr = "El número <strong style='font-size: 22px;'>"+number+"</strong> es un número compuesto<br>División natural encontrada: "+number+" entre "+calcular[x];
  break;
        }
  else
  {
  impr = "El número <strong style='font-size: 22px;'>"+number+"</strong> es un número primo<br>";
  }
}
document.getElementById("primos").innerHTML = impr;
}
}




2 comentarios:

Anónimo dijo...

solo es necesario chequear hasta la raíz de number, en vez de hasta number -1

Manu dijo...

Cualquiera de las dos formas es válida ... x < number; es lo mismo que x <= number-1;