Skip to content
marzo 26, 2012 / dracux

Matemática y Programación I: Números Primos, vamos entrando

Hace mucho, con mi amigo Lord Pato, jugabamos con unos programitas que hicimos en Python que tenían que ver con cuestiones matemáticas, especialmente con los números primos. Python específicamente nos parecía una gran opción para este tipo de cosas por el hecho de no tener que andar transformando los tipos de variables cuando empezabamos a usar números gigantes.

Por si alguien realmente no sabe de que va esto de los números primos refiramonos a Wikipedia:

En matemáticas, un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Los números primos se contraponen así a loscompuestos, que son aquellos que tienen algún divisor natural aparte de sí mismos y del 1. El número 1por convenio, no se considera ni primo ni compuesto.

En esta primera aproximación pensemos en un número y fijémonos si este es primo o no. También en estos programas vamos a medir la velocidad en la que se ejecutó todo.

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)+""
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())

Nos vemos en la próxima!

Anuncios

2 comentarios

Dejar un comentario
  1. Aitor González / Mar 26 2012 6:35 pm

    Que sencillo parece Python comparado con Java (que es el que me enseñan donde estudio), la de cosas que habría que importar para hacer funcionar ese código…

    • dracux / Mar 27 2012 11:07 am

      Estaba pensando en hacerlo en Java, el problema es que no se como tratar números gigantes (y por gigantes hablo de unos cientos de miles de dígitos).

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: