Números primos y javascript.

Este artículo muestra varias rutinas javascript relacionadas con los números primos. Se tendrá en cuenta que los números primos solamente son divisibles por uno y por si mismos. Además, se utilizará el operador %, módulo o resto, para determinar si un número divide o no a otro, puesto que si el resultado de la operación % da cero es divisible y en otro caso no.

Utilizando las técnicas aquí empleadas usted podría, por ejemplo, desarrollar un script que calculara los 123, los 405 o los 1000 primeros números primos. Anímese, será divertido. Por mi parte quedará para un segundo artículo que trate de este tema.


Indice.


1.- Divisores de un número dado.

Prueba del script
Escriba un número natural:

Tiempo empleado:
Número de divisores:


Divisores encontrados:

Código de la función numDivisores()
<script type="text/javascript">
function numDivisores(){
//inicia contador temporal
var start = new Date().getTime();
// recoge el número introducido por el usuario
var p=document.formulario1.numero.value;
// array que almacenará los divisores encontrados
var arrDivisores = [];
// bucle buscador de divisores
for ( j = 1; j<=p ; j++){
// si el resto de la división es cero
if ( p%j == 0){
// añadimos al array de los divisores
arrDivisores.push(j);
}
}
// finaliza el contador temporal
var finish = new Date().getTime();
// calcula el tiempo de ejecución del script
var tiempoEmpleado = finish - start;
// presenta los resultados: tiempo, número de elementos del array
// y los elementos del array
document.formulario1.tiempo.value = tiempoEmpleado + " mseg.";
document.formulario1.numdiv.value = arrDivisores.length;
document.formulario1.resultado.value = arrDivisores.join(", ");
}
</script>


2.- Encontrar todos los primos entre 2 números dados.


Prueba del script

Tenga en cuenta que si el número mayor es grande, del orden de 5000, es posible que el navegador le pregunte si quiere seguir con la ejecución del script. Usted responda que sí.


Número Menor: Número Mayor:

Tiempo empleado:
Número de primos:


Números Primos encontrados:

Código de la función numPrimos()
function numPrimos(){
//inicia contador temporal
var start = new Date().getTime();
// obtenemos los valores escritos y nos
// aseguramos de que son números.
var p=document.formulario2.numerom.value;
var q=document.formulario2.numeroM.value;
p = parseInt(p);
q = parseInt(q);
// array que almacenará los primos encontrados
var arrPrimos = [];
for (i = p; i <= q ; i++){
// todo primo tiene solo 2 divisores
var divisores = 2;
// buscamos otros divisores
for ( j = 2; j<i ; j++){
// si encontramos más de dos divisores
// no es primo y pasamos a otro posible divisor
if (i%j == 0){
divisores++;
break;
}
}
// si tiene 2 divisores es primo
// lo añadimos al array mediante el método push()
if (divisores == 2){
arrPrimos.push(i);
}
}
// finalizamos el contador temporal
var finish = new Date().getTime();
var tiempoEmpleado = finish - start;
// presentamos los resultados
document.formulario2.tiempo2.value = tiempoEmpleado + " mseg.";
document.formulario2.numpr.value = arrPrimos.length;
document.formulario2.resultado2.value = arrPrimos.join(", ");
}


3.- ¿Es N un número primo?.

Prueba del script.
Escriba un número natural:

Resultado: es primo.

Código de la función esPrimo()
function esPrimo(){
var p=document.formulario3.numero3.value;
p = parseInt(p);
var divisores = 2;
for ( j = 2; j<p ; j++){
if (p%j == 0){
divisores++;
break;
}
}
if (divisores == 2){
document.formulario3.resultado3.value = "SI";
}
else{
document.formulario3.resultado3.value = "NO";
}
}



Añadir a Favoritos Internet Explorer

Menú

Categorías


Lo Último

  Mis programas  Matemáticas  Geometría  Programación WEB  Flash MX  Variados
Dedicado a ANGELES y a RAMON.
Realizado por José Antonio López Lorenzo (JALL)
Vigo - Galicia - España -Europa