[pyar] Numeros primos

Pablo M. Mana pablo.m.mana en gmail.com
Dom Nov 27 22:30:00 ART 2011


El día 25 de noviembre de 2011 13:37, Roberto Alsina
<ralsina en netmanagers.com.ar> escribió:
> On 11/25/2011 1:33 PM, Matias Graña wrote:
>>
>> 2011/11/25 Ricardo Armas<rarmas en gmail.com>:
>>>
>>> On Fri, Nov 25, 2011 at 13:00, Matias Graña<matias.alejo en gmail.com>
>>>  wrote:
>>>
>>>> Es que el problema original era encontrar TODOS los números primos,
>>>> empezando desde el 2. Vos lo estás cambiando por encontrar ALGUNOS
>>>> números primos entre dos valores. Ambos problemas son importantes,
>>>> pero son distintos, y no se suelen resolver de la misma manera.
>>>
>>> si cambiás el código de main() por esto
>>>
>>> def main(argv):
>>>  for p in range(2,int(argv[0])):
>>>    if MillerRabin(p):
>>>      print(p)
>>>
>>> El programa imprime TODOS los primos desde el 2 y bastante más rápido
>>> que la criba...
>>
>> Sí, asumiendo la hipótesis de Riemann. De todas maneras, la HR a esta
>> altura es dudoso que sea falsa, y es cierto que hay un factor de
>> ln(n)^2 con MillerRabin y de n/ln(n) con la criba, que es bastante más
>> grande.
>
> La HR está verificada numéricamente para los primeros 10 triillones de
> raíces no triviales.
> O sea, no creo que en la práctica te encuentres un número que falle con
>  Miller Rabin ;-)
>


Muchas gracias por sus respuestas, aprendi unas cuantas cosas
leyendolos, la funcion quedo:

def primos ( fin = 100 ):
    """ Halla una lista de numeros primos por encima de 7 """
    im = [ n for n in range (3, fin, 2) ]
    l1 = [ o for o in im if (o % 5 != 0 ) ]
    l2 = [ m for m in l1 if ( ( pow( m, 0.5) ) !=  int( pow( m, 0.5)))]
    p1 = [ n for n in l2 if all(n%l != 0 for l in range(2, int( pow(n, 0.5)))) ]
    print p1

Tengo como tarea pendiente jugar un  poco con el codigo de Facundo. Lo
implemente con generadores por que para lo unico que se me ocurre
usarlos es para temas matematicos.  No esperaba ver tantas cosas
nuevas y utiles con esta pregunta.

Saludos.
Pablo M. Mana



More information about the pyar mailing list