Skip to content
marzo 27, 2012 / dracux

Matemática y Programación II: Números Primos, tuneando la vida

Bueno, continuemos con este asunto de los números primos y la programación. Ahora pasemos a cambiar algunas cositas. Como quiero que se fije RAPIDO si el número es primo o no, no me interesan todos los divisores posibles. Con respecto al programa anterior entonces lo único que tendría que hacer es agregarle un break.

from datetime import *

nro=input ("Ingrese nro.:")
print "Hora de inicio: "+str(datetime.today())
if(nro%2==0):
    nroinicial=nro/2
else:
    nroinicial=(nro+1)/2
flag=0

if (nroinicial==1): #1 no es primo
    flag=1
else:
    if(nro==2): #2 es primo
        flag=0
    else:
        for i in range (2,nroinicial+1):
            if(nro%i==0):
                flag=1
                print "Nro. "+str(nro)+" is divisible by "+str(i)+""
                break
if (flag==0):
    print "El nro. "+str(nro)+ " es primo."
else:
    print "El nro. "+str(nro)+ " no es primo."
print "Hora de fin: "+str(datetime.today())

Ahora tenemos otra forma de tunear esto. NINGUN número par a excepción del 2 es primo por obvias razones. Con unas más que pequeñas modificaciones podemos obtener algo así:

from datetime import *
flag=0
nro=input ("Ingrese nro.:")
print "Hora de inicio: "+str(datetime.today())
if(nro%2==0 and nro!=2):
    flag=1
else:
    nroinicial=(nro+1)/2
if (nro==1): #1 no es primo
    flag=1

if (flag==0):
    if(nro!=2): #2 es primo
        for i in range (2,nroinicial+1):
            if(nro%i==0):
                print "Nro. "+str(nro)+" is divisible by "+str(i)+""
                flag=1
                break
if (flag==0):
    print "El nro. "+str(nro)+ " es primo."
else:
    print "El nro. "+str(nro)+ " no es primo."
print "Hora de fin: "+str(datetime.today())

Ahora, al verificar un primo chico como por ejemplo 10007:

Hora de inicio: 2012-03-27 13:06:52.222000
El nro. 10007 es primo.
Hora de fin: 2012-03-27 13:06:52.236000

El tiempo que tardó es ínfimo e infiero que es más por el print que otra cosa…

En el próximo capítulo, mucho más de números primos y programación!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: