Mostrando entradas con la etiqueta numeros primos. Mostrar todas las entradas
Mostrando entradas con la etiqueta numeros primos. Mostrar todas las entradas

sábado, 17 de diciembre de 2011

Algoritmo numero primo

Hola a todos!!

Esta mañana me desperté con una inquietud programeral.  Y es otro procedimiento sencillo : ¿cuando un numero es primo?

segun la wikipedia.

Un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Se contraponen así a los números compuestos, que son aquellos que tienen algún divisor natural aparte de sí mismos y del 1. El número 1, por convenio, no se considera ni primo ni compuesto. 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
entonces me puse a pensar (poco a decir verdad) como responder a la pregunta ¿es el 3.651.497 un numero primo? con esto en mente y conociendo la deficion me puse a programar un poco en PERL y encontré esta solución:

  1. #!/usr/bin/perl
  2. # este programa lee un numero N
  3. # y avisa si es un numero primo
  4. print"*******************************\n";
  5. print"* AVISO DE PRIMO              *\n";
  6. print"* ----- -- ------             *\n";
  7. print"*******************************\n";
  8. print"ingrese el numero :";
  9. chop($num=<STDIN>);
  10. print "\n";
  11. $con=0; # contador de divisores
  12. for($i=1;$i<=$num;$i++){
  13. $res=$num%$i; # calcula el resto de la division del numero con el indice 
  14. if($res==0){
  15. $con++; # si el resto, es decir si el indice es divisor del numero, suma uno a al cantidad de divisores
  16. }
  17. if ($con>2){ 
  18. last; # si tiene mas de dos divisores y aun no llego al final, sale de la repeticion.
  19. }
  20. if ($con<=2){
  21. print "el numero $num ES primo \n";
  22. }
  23. else{
  24. print "el numero $num NO es primo! \n";
  25. }
  26. print "listo! \n";
corriendolo me queda asi

con lo que resulta que 3.651.497 es un numero primo!

espero que este algoritmo le sirva a algún estudiante , colega, etc. obviamente se puede mejorar, pero ya se me hace tarde para almozar! lo hare otro dia.

Hasta la proxima lectores!

saludos!