Skip to content

Instantly share code, notes, and snippets.

@gcorreaq
Last active December 28, 2015 09:29
Show Gist options
  • Save gcorreaq/7479339 to your computer and use it in GitHub Desktop.
Save gcorreaq/7479339 to your computer and use it in GitHub Desktop.
Pequeña función para encontrar números primos en un intervalo dado, incluyendo ambos extremos.
def verifica_primo(menor, mayor):
# Guardaremos los numeros primos en una lista
primos = []
for termino in xrange(menor, mayor + 1):
divisores = 0
# Aca hay un truco: si el termino es divisible por cualquier numero
# entre 2 y el (termino - 1), entonces no es primo porque tiene mas de
# un divisor (aparte de 1 y de si mismo)
for divisor in xrange(2, termino):
if (termino % divisor) == 0:
# Divide a termino, no seguimos buscando
break
else:
# Aca llegamos solo cuando recorrimos todo el intervalo y no encontramos
# ningun divisor, por lo que el numero es primo
primos.append(termino)
# Esto comprueba si la lista no esta vacia
if primos:
print "{cant} primos en el intervalo [{menor}, {mayor}]: {primos}".format(
cant=len(primos),
menor=menor,
mayor=mayor,
primos=primos)
else:
print "El intervalo [{menor}, {mayor}] no posee numeros primos.".format(
menor=menor,
mayor=mayor)
if __name__ == '__main__':
# Un truco para entrar al while
menor = 1
mayor = 0
while mayor < menor:
menor = int(raw_input("Menor: "))
mayor = int(raw_input("Mayor: "))
if mayor < menor:
print "Input incorrecto"
verifica_primo(menor, mayor)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment