Generando números primos

Por Saiyine Enviar correo el 2005-09-18 23:28:00 - Secciones:  PERL  - Enlace permanente: 558

Para un experimento, necesitaba una lista bastante larga de números primos, lo que me indujo a hacer este programita en perl.

El script es realmente simple, y practicamente no usé ningún truco para acelerar la generación de primos salvo el empezar con una lista de ocho o nueve precalculados.

Los números generados son guardados en un txt que es reaprovechado la siguiente vez que se ejecuta el programa, que por cierto acepta como parametro cuantos primos queremos calcular.

Y sin más preambulos, el código:

#!/usr/bin/perl

if (-e "primos.txt")
{
  open (f1,"primos.txt");
  @leido=<f1>;
  close(f1);
  foreach $l ( @leido )
  {
    if ($l > 0)
    {
      push (@primos, $l*1);
    }
  }
} else
{
  @primos = (2,3,5,7,11,13,17,19);
}

$a = pop (@primos);
push (@primos, $a);

if ( $ARGV[0]==0 )
{
  $tope=1;
} else
{
  $tope=$ARGV[0];
}

$cuenta=0;
do
{
  $primo = "Si";
  foreach $p (@primos)
  {
    if ( $a % $p == 0 ) 
    {
      $primo = "No";
      break;
    }
  }
  if ( $primo eq "Si" )
  {
    $cuenta++;
    print "[ $a ] $cuenta\n";
    push (@primos, $a);
  }
  $a=$a+1;
}
while ($cuenta<$tope);

open (f1,">primos.txt");
foreach $i ( @primos )
{
  print f1 "$i\n";
}
close(f1);

Otras entradas de la web que podrian interesarte:

Gravatar 982
Banderita Anonimo (2007-02-23 11:58:57)

primos

Gravatar 1063
Banderita yayis (2007-04-09 12:20:44)

escribir uin algoritmo que dados dos numeros enteros a y b talque a<=b ,indicar que todos los numeros comprendidos entre a y b pueden expresarsen como suma de sos numeros primos ejem:
a=5 yb=8 verdadero dado que 5=2+3 y 8 =3+5
afradesco a la persona queme allude a realizarlo

Gravatar 3329
Banderita Anonimo (2009-04-29 02:50:35)

como sw haria uno en el que el usuario ingrese un entero y le salga los primos anteriores al numero.

SocializerMenefante Del.icio.us Digg 


Tu nombre (Nick):

Tu correo (Email):
  Necesario para tu gravatar!

Tu página (URL):

Escribe aqui tu comentario:

       :noworry: :roll: :huh: :push: :OO 8) 8O :( :) :? :D :P :o :x :| ;) ^^ xD



Vista previa activada.

Vista previa (6/6/6, 6:66)


Fondos de pantalla

. . .

Recomendamos

  • Betsson bahis adresi betsson iddaa bahis
  • Canli bahis betsson bahis sitesinde.

. . .

Descargas

  • ApagaPC
    apagapc241.exe  (3489)
  • LimpiaDocus
    LimpiaDocus001.exe  (2767)
  • RCM
    rcm001.zip  (2346)
  • Popmail
    popmail-0.4-psmn.tar.gz  (2410)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (3009)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (2822)
  • Excel Simpsons
    Excel Simpsons  (3008)
  • . . .

    ltimos comentarios

  • 660 - Anonimo: jghfuioijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj :push:
  • 768 - : me encantan los emos y quisiera ser uno y tengo...
  • 768 - Anonimo: hola no conosco mucho esta pagina pero deve de estas...
  • 859 - Bertomania: Muchas Gracias. Sirve para Mucho!!
  • 771 - Anonimo: Muchas gracias por el listado, tenia varios minutos buscando America/Santo_Domingo...
  • 660 - Anonimo: :OO
  • . . .

    Proyectos Online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: El Mundo Today, La libreta de Van Gaal, Chavalina, Kirai, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Michael Yon, Coding Horror, YCombinator news, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (1196), cacheando webs
  •  Spam.la  (1431), correo de usar y tirar
  •  Mailinator  (1356), correo de usar y tirar
  •  Bug me not  (1219), absurdos registros di NO
  •  Trashmail  (1251), correo de usar y tirar

    . . .

  • Busquedas


    Varios ejemplos de lo que buscaban visitantes recientes:

    . . .

    Página web ©2001-2010 Saiyine generada en s, con 4639756 visitas en total, hoy (de un total de 0 previstas).

    . . .